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