2011-03-14 39 views
2

在添加子視圖之後會自動增加UITableViewCell contentView的幀大小嗎?在添加子視圖後會自動增加UITableViewCell contentView的幀大小

假設你:

  • 添加幾個子視圖(如UILabel的)到的UITableViewCell內容視圖
  • 然後設置使用label.frame = CGRectMake(...的大小的UILabel /位置逼近
  • 則是UITableViewCell中的幀大小變化自動適應這一點 - ?如果你去tableViewCell.contentView.frame.size.height這應該是在子視圖需要剛好合身的總高度,即

回答

5

我不這麼認爲......這似乎並不合乎邏輯。您可以設置框架高度通過的UITableView財產的rowHeight您的細胞或實現的UITableViewDelegate方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
+0

interestly它是內heightForRowAtIndexPath,我試圖確定高度的行會。所以建議的方法是通過使用cellForRowAtIndexPath創建一個臨時單元,然後測量它的尺寸。然而,這裏的問題是UITableViewCell的整體維度似乎沒有反映/調整到它的子視圖呢?所以這意味着我必須手動查看所有子視圖(例如UILabels)並手動確定整體高度是多少? – Greg 2011-03-14 23:12:44

+1

嗨! heightForRowAtIndexPath實際上是在cellForRowAtIndexPath之前調用的,因此我建議您預先計算所有行高並將它們作爲屬性存儲在您試圖用表格單元格描述的對象中。然後在heightForRowAtIndexPath詢問特定單元格的行應該有多高時使用這些值。 – 2011-03-15 17:19:29

相關問題