2013-02-15 43 views
2

自定義UITableViewCell的子視圖使用自動佈局工作(已驗證)添加到代碼中。但是,這樣做的關鍵在於不必計算每個tableview單元格的高度,並且在繪製tableview時委託方法heightForRowAtIndexPath需要一個高度。自定義UITableViewCell的子視圖使用自動佈局 - 無xibs,全部用代碼

如何根據使用自動佈局的內容(在已添加和正在工作的代碼中添加基於視覺格式語言的內容)並將其返回給此heightForRowAtIndexPath?

另外我是我真的不能在後臺線程(或我可以嗎?)做到這一點,因此,如果我有一個UITableView使用這個支持1000條記錄列表支持,這將永遠是,這是對?

回答

1

在這種情況下,Autolay只是意味着您不需要計算每個單元格中子視圖的幀大小。它與heightForRowAtIndexPath方法無關 - 表視圖使用該方法來定義單元格的框架,然後通知子視圖的佈局。

使用Autolayout來確定高度可能會非常緩慢,你不能在後臺線程上做到這一點。如果你有1000行,那麼我會考慮一個層次結構,而不是一個表,因爲這將是非常繁瑣的滾動。您還可以考慮在設置或創建數據時計算高度。

可能能夠使用您的約束設置離屏視圖,爲每個項目填充數據,然後記錄並緩存高度。但是,您必須在數據端而不是高度方法中執行此操作,因爲這太慢了。