ios – 首次出现时无法在UITableViewCell中更改UILabel的帧(使用Autolayout)

前端之家收集整理的这篇文章主要介绍了ios – 首次出现时无法在UITableViewCell中更改UILabel的帧(使用Autolayout)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的UITableView里面有一个包含UILabel的原型单元格.我想根据标签中文本的大小动态更改标签(和单元格)的大小.

我在cellForRowAtIndexPath中创建原型单元格,如下所示:

static NSString *CellIdentifier = @"ProgramDetailCell";
ProgramDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.descriptionLabel.text = self.program.subtitle;
return cell;

然后我的ProgramDetailCell具有以下实现:

@implementation ProgramDetailCell
- (void)layoutSubviews {
    [super layoutSubviews];
    [self.descriptionLabel sizeToFit];
}
@end

第一次显示单元格时,会调用layoutSubviews,但不会调整descriptionLabel的大小.但是,如果我向下滚动表并再次备份,则会显示“重复使用”单元格,并正确调整标签大小!

为什么第一次显示单元格时它不起作用 – 我需要做些什么来修复它.

提前致谢!

解决方法

在xib中,转到第一个选项卡,在Interface Builder Document下,取消选中“使用自动布局”框.

猜你在找的iOS相关文章