如何在创建单元格时设置UItableViewCell的子视图的高度

时间:2013-04-04 07:59:26

标签: iphone ios

我使用nib创建了自定义单元格。在表格视图中,我使用方法-(float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath来设置单元格的高度 一切正常。  但问题是我还想改变UIlabel的大小,它被添加为单元格的nib中的子视图。 我怎么做? 在customcell类中要覆盖哪个方法?

3 个答案:

答案 0 :(得分:1)

您正在寻找的方法是:

-(void)layoutSubviews
{
   [super layoutSubview];
   //Do your magic 
}

layoutSubviews是在创建单元格后以及设备方向更改时调用,以允许您调整大小和/或移动子视图(以及进行任何其他微小调整)以补偿方向之间的差异,但在这种情况下,也可以用它来重绘您的子视图。

答案 1 :(得分:0)

由于您在自定义单元格类中有UILabel,因此在该类中创建一个函数,该函数将您想要设置为参数的帧。在该功能中设置标签框架。在返回单元格之前,需要从cellForRowAtIndexPath方法调用此函数。

如果您正在重复使用自定义单元格,则只应在(单元格== nil)时调用方法 此外,如果您可以在问题中添加一些有用的代码,您可以获得更精确的答案。

答案 2 :(得分:0)

您需要以与处理普通视图或使用xib查看控制器类相同的方式处理自定义单元格。即,您需要为自定义单元格中的控件创建IBOutlet,并且在创建单元格期间,您可以非常轻松地访问控件。

myCell.myCustomUILabel.text = @"blah"

在xib中使用自定义单元格并且连接IBOutlet时会有一些问题。 This SO(我的)答案解释了如何创建和链接自定义单元格的IBOutlet。