我有一個可重複使用的UITableViewCell我的故事板,在那裏我需要的文字已被設置後sizeToFit的一部分。要做到這一點,我在我的手機類的layoutSubviews方法進行sizeToFit。調整大小的UILabel在UITableViewCell中沒有更新之前渲染
但問題是,我沒有看到任何更新,我試過設置needsDisplay/Layout,但我看不到任何更新,直到細胞需要完全重新呈現(無論是當我向下滾動和向上或當我開始&端更新到的tableView)。
我有一個可重複使用的UITableViewCell我的故事板,在那裏我需要的文字已被設置後sizeToFit的一部分。要做到這一點,我在我的手機類的layoutSubviews方法進行sizeToFit。調整大小的UILabel在UITableViewCell中沒有更新之前渲染
但問題是,我沒有看到任何更新,我試過設置needsDisplay/Layout,但我看不到任何更新,直到細胞需要完全重新呈現(無論是當我向下滾動和向上或當我開始&端更新到的tableView)。
我已經設法解決這個問題,爲UILabel創建一個類,然後在layoutSubviews中爲我的子類UILabel執行需求。
如果您正在使用自動佈局,請嘗試在單元格的layoutSubviews
方法中設置preferredMaxLayoutWidth標籤屬性。您需要設置該屬性後,再打電話[super layoutSubviews]
。
- (void)layoutSubviews
{
[super layoutSubviews];
// Make sure that label's text is set by now
self.label.preferredMaxLayoutWidth = self.label.frame.size.width;
[super layoutSubviews];
}