2014-12-23 108 views
1

我有一個自定義的UITableViewCell叫做「CustomCell」,其中我在init方法中設置了我的約束。 當我的子類「CustomCell」,我添加新的UI元素,並嘗試更新約束,但它都出錯了。 爲了使它正常工作,我在-(void)layoutSubviews中創建了我的約束,但我不確定這是否正確。 我不知道我是否在正確的UITableViewCell方法中創建我的約束。UITableViewCell自動佈局最佳實踐

是否有任何最佳實踐,告訴我們應該在哪種方法中創建或更新佈局約束?

回答

0

基本上,UITableViewCell可以設置constraint以下init方法。由於cell的框架已經較早更新: -

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
+0

但是,當我繼承我的自定義單元格,並添加新的UI孩子細胞,我意識到約束沒有正確設置,並有一些用戶界面佈局問題。 – rokridi

0

看看調試窗口無論是說一些不明的佈局與否。可能發生的情況是,您新添加的UI元素的NSAutoresizingMaskLayoutConstraint與您手動設置的元素衝突。如果是這樣,請嘗試通過你的UIObject.translatesAutoresizingMaskIntoConstraints = NO來關閉它們。

但是,如果你有一個可能性,以創建界面生成器將讓從那裏設置的限制是建議的路徑細胞遵循