UILabel:使用PreferredMaxLayoutWidth和Autolayout后的保证金

时间:2014-10-08 14:29:01

标签: objective-c autolayout size uilabel margins

UILabel内设置preferredMaxLayoutWidth的{​​{1}}属性时,我在UILabel中有一些奇怪的边距。你知道这样的行为吗?

我添加UITableViewCell就像那样:

preferredMaxLayoutWidth

结果是这样的:

enter image description here

如您所见,标题标签的边距为- (void)layoutSubviews { self.titleLabel.preferredMaxLayoutWidth = self.titleLabel.frame.size.width; [self.titleLabel sizeToFit]; self.shortDescriptionLabel.preferredMaxLayoutWidth = self.shortDescriptionLabel.frame.size.width; [self.titleLabel sizeToFit]; [super layoutSubviews]; } ,我不知道它们的来源。 我已经尝试拨打14px,但这没有用。

1 个答案:

答案 0 :(得分:1)

这里的问题是标签的宽度被设置为故事板或xib的宽度(它是实例化的(检查layoutSubviews内部的宽度,你会发现它是非常错误的)。您必须在此之外设置preferredMaxLayoutWidth。我最终做的是preferredMaxLayoutWidth设置为tableView的宽度减去标签的任何填充(我使用了约束组),这应该与单元格相同宽度。

因此,您需要以下方法进行单元格配置(从tableView:cellForRowAtIndexPath:tableView:heightForRowAtIndexPath:调用