2011-03-14 47 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