Я пытаюсь реализовать ограниченный подкласс UITableViewCell
, и все работает отлично, за исключением UILabel
. Ограничения, которые я установил, определенно соблюдаются, но текст внутри метки не изменяет размер до меньшего размера шрифта при столкновении ограничений. Вместо этого высота UILabel усекается, а шрифт остается того же размера, что означает, что буквы обрезаются сверху и снизу.
Есть ли какой-то метод, который мне нужно вызвать, чтобы заставить его работать? Я бы подумал, что Auto Layout будет достаточно умным, чтобы автоматически изменять размер шрифта, поэтому я немного потерял, почему это происходит.
Соответствующий код:
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
находится слева, aTextField
находится справа от otherView
на том же уровне y, а метка ниже aTextField
и справа от нижней части otherView
.
Как обычно, спасибо за любую помощь в этом.