2016-08-09 79 views
1

我有這樣的代碼爲我的表(_filters =的UITableView)UITableViewAutomaticDimension和多標籤問題

​​

我有我的自定義單元格內的多行標籤。有些行是單行的,有些行是多行的。我正在使用約束。它工作的很好,但什麼是問題:

當我打開控制器時,表顯示一段時間舊的大小不正確的單元格佈局,然後一段時間後,顯示正確的佈局。可能是因爲表數據在viewDidLoad中設置,然後在viewDidAppear中重新載入表。

但:

1)如果我從viewDidAppear除去reloadData,正確細胞佈局不呈現(除非表單元格滾動出屏幕的)

2)如果我把代碼從viewDidLoad中至viewDidAppear,與上面相同的問題。正確的單元佈局不呈現。

所以現在我有正確的細胞佈局呈現,但對於像1-2秒,我看到老壞細胞佈局,因此它看起來難看..

我試圖把的cellForRowAtIndexPath以下調用的一切,有正確的佈局尚未初始負載,但沒有工作..

//[cell setNeedsUpdateConstraints]; 
//[cell updateConstraintsIfNeeded]; 
//[cell setNeedsLayout]; 
//[cell layoutIfNeeded]; 

任何解決方案?謝謝..

問題是無論在iOS8上/ 9

+1

添加此方法和標籤行設置爲0. func tableView(tableView:UITableView,estimatedHeightForRowAtIndexPath indexPath:NSIndexPath) - > CGFloat {返回UITableViewAutomaticDimension } –

+0

嗨Chirag,它的工作謝謝! (缺少方法修復它) – luky

+0

@Chirag,在這裏添加你的評論作爲答案,所以人們會發現它有幫助。 –

回答

1

按照該奇拉格評論,添加此UITableViewDelegateMethod方法

 func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     return UITableViewAutomaticDimension 
     } 

試運行和檢查。如果不能正常工作,請使用上述方法,然後嘗試執行以下步驟。

2.取出優選寬度/色情內容的標籤在故事板/ XIB寬度。

enter image description here

幸得useyourloaf

參見本教程:

http://useyourloaf.com/blog/self-sizing-table-view-cells/

http://openradar.appspot.com/17799811

例子: https://github.com/kharrison/CodeExamples/tree/master/SelfSize

+0

你好,謝謝你的回覆。我甚至不知道故事板上有一些明確的寬度。我的標籤沒有檢查過,但感謝您的回答和信息,我會記住它。 – luky

+1

我希望添加func tableView(tableView:UITableView,estimatedHeightForRowAtIndexPath indexPath:NSIndexPath) - > CGFloat {return UITableViewAutomaticDimension}並刪除顯式寬度(如果標籤存在)將適用於您的問題。我從你的問題中學到了些東西。謝啦。 –

+0

是的,它的工作,謝謝 – luky