第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何以分組樣式設(shè)置UITableView中單元格的寬度

如何以分組樣式設(shè)置UITableView中單元格的寬度

iOS
慕哥6287543 2019-11-05 15:29:08
我已經(jīng)為此工作了大約2天,因此我想與您分享我的經(jīng)驗。問題是:是否可以使分組的UITableView中的單元格寬度變???答案是不。但是有兩種方法可以解決此問題。解決方案#1:表格更薄 可以更改tableView的框架,以使表格變小。這將導(dǎo)致UITableView以減小的寬度呈現(xiàn)內(nèi)部單元格。解決方案如下所示:-(void)viewWillAppear:(BOOL)animated{    CGFloat tableBorderLeft = 20;    CGFloat tableBorderRight = 20;    CGRect tableRect = self.view.frame;    tableRect.origin.x += tableBorderLeft; // make the table begin a few pixels right from its origin    tableRect.size.width -= tableBorderLeft + tableBorderRight; // reduce the width of the table    tableView.frame = tableRect;}解決方案2:讓單元格由圖像渲染此解決方案的說明如下:http : //cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html希望這些信息對您有所幫助。我花了大約2天的時間嘗試了很多可能性。這就是剩下的。
查看完整描述

3 回答

?
慕雪6442864

TA貢獻1812條經(jīng)驗 獲得超5個贊

一種更好,更干凈的方法是將UITableViewCell子類化并覆蓋其-setFrame:方法,如下所示:


- (void)setFrame:(CGRect)frame {

    frame.origin.x += inset;

    frame.size.width -= 2 * inset;

    [super setFrame:frame];

}

為什么會更好?因為其他兩個更糟。


在中調(diào)整表格視圖寬度 -viewWillAppear:


首先,這是不可靠的,在-viewWillAppear:調(diào)用后,超級視圖或父視圖控制器可能會進一步調(diào)整表視圖框架。當(dāng)然,您可以-setFrame:為UITableView 子類化和重寫,就像我在這里為UITableViewCells所做的一樣。但是,對UITableViewCells進行子類化是一種非常普遍,輕便和Apple的方式。


其次,如果您的UITableView具有backgroundView,則不希望將backgroundView一起縮小。在縮小UITableView寬度的同時保持backgroundView寬度并不是一件容易的事,更不用說首先將子視圖擴展到其Superview之外并不是一件很優(yōu)雅的事情。


自定義單元格渲染以偽造更窄的寬度


為此,您必須準(zhǔn)備帶有水平邊距的特殊背景圖像,并且必須自己布置單元格的子視圖以容納邊距。相比之下,如果您只是調(diào)整整個單元格的寬度,則自動調(diào)整大小將為您完成所有工作。


查看完整回答
反對 回復(fù) 2019-11-05
?
守著星空守著你

TA貢獻1799條經(jīng)驗 獲得超8個贊

要在不提供設(shè)置變量方法的Swift中進行此操作,您必須覆蓋的setter frame。原帖(至少在我找到它)在這里


override var frame: CGRect {

    get {

        return super.frame

    }

    set (newFrame) {

        let inset: CGFloat = 15

        var frame = newFrame

        frame.origin.x += inset

        frame.size.width -= 2 * inset

        super.frame = frame

    }

}


查看完整回答
反對 回復(fù) 2019-11-05
?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

我發(fā)現(xiàn)接受的解決方案在旋轉(zhuǎn)時不起作用。為了實現(xiàn)具有固定寬度和靈活邊距的UITableViewCells,我將上述解決方案調(diào)整為以下內(nèi)容:


- (void)setFrame:(CGRect)frame {


    if (self.superview) {

        float cellWidth = 500.0;

        frame.origin.x = (self.superview.frame.size.width - cellWidth) / 2;

        frame.size.width = cellWidth;

    }


    [super setFrame:frame];

}

每當(dāng)設(shè)備旋轉(zhuǎn)時都會調(diào)用該方法,因此單元將始終居中。


查看完整回答
反對 回復(fù) 2019-11-05
  • 3 回答
  • 0 關(guān)注
  • 603 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號