Я пытаюсь реализовать ограниченный подкласс 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
.
Как обычно, спасибо за любую помощь с этим.