我正在尝试实现一个受约束的UITableViewCell
子类,并且一切都运行良好,除了UILabel
. 我设置的约束肯定会被强制执行,但是当约束发生冲突时,标签内的文本不会调整为较小的字体大小。相反,UILabel 的高度被截断并且字体保持相同大小,这意味着字母在顶部和底部被截断。
有没有我必须调用的方法才能让它工作?我认为自动布局足够聪明,可以自动调整字体大小,所以我有点不知道为什么会这样。
相关代码:
self.label = [[UILabel alloc] initWithFrame:CGRectZero];
self.label.textColor = [UIColor whiteColor];
self.label.translatesAutoresizingMaskIntoConstraints = NO;
self.label.textAlignment = NSTextAlignmentCenter;
self.label.numberOfLines = 1;
[self.contentView addSubview:self.label];
NSLayoutConstraint *otherViewToLabelHorizontalConstraint = // Make sure that the label is always to the right of the other view.
[NSLayoutConstraint constraintWithItem:self.label
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationGreaterThanOrEqual
toItem:self.otherView
attribute:NSLayoutAttributeRight
multiplier:1.0
constant:0.0];
NSLayoutConstraint *aTextFieldToLabelVerticalConstraint =
[NSLayoutConstraint constraintWithItem:self.label
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationGreaterThanOrEqual
toItem:self.aTextField
attribute:NSLayoutAttributeBottom
multiplier:1.0
constant:0.0];
基本上,这些约束旨在强制一个单元格otherView
位于左侧,位于同一 y 级别aTextField
的右侧,并且标签位于底部的下方和右侧。otherView
aTextField
otherView
像往常一样,感谢您对此的任何帮助。