У меня есть обычай UITableViewCell
. В UITableViewCell's contentView
я добавил UIButton
и ниже кнопки есть UILabel
(Button и UILabel являются братьями и сестрами друг к другу).Настройка высоты UITableViewCell в соответствии с меткой изменения размера
В начале не будет текста на UILabel, поэтому его ограничение по высоте установлено на> = 0. но Когда я нажимаю кнопку, я устанавливаю свойство текста UILabel
, и оно должно стать видимым. Другими словами, я хочу расширить высоту UILabel, а также увеличить высоту UITableViewCell.
Я возлагал UIButton
Top,Leading
и Trailing
края к UITableViewCell
contentView
и точно так же я возлагал UILabel в Bottom,Leading
и Trailing
края к UITableViewCell
contentsView.
Теперь проблема в том, что когда я нажимаю UITableViewCell
, он не изменяет размер UILabel
, а также не регулирует UITableViewCell
.
Вот мой код
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
MYCustomCell *cell = (MYCustomCell *) [tableView cellForRowAtIndexPath:indexPath];
cell.descriptionLbl.text = @"This is my text";
[cell layoutSubviews];
}
Аналогично
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
MYCustomCell *cell = (MYCustomCell *) [tableView cellForRowAtIndexPath:indexPath];
cell.descriptionLbl.text = @"";
[cell layoutSubviews];
}
Вот это layoutSubViews моего пользовательского Cell
- (void) layoutSubviews {
[super layoutSubviews];
self.descriptionLbl.preferredMaxLayoutWidth = CGRectGetWidth(self.contentView.bounds);
self.descriptionLbl.numberOfLines = 0;
[self.descriptionLbl sizeToFit];
if (self.descriptionLbl.text.length > 0){
self.descriptionLbl.frame = CGRectMake(self.descriptionLbl.frame.origin.x, self.descriptionLbl.frame.origin.y, self.descriptionLbl.frame.size.width, 50); // Here the size will be calculated more accurately later
}
}
Просто обратите внимание, что я не заходящего высоту от UITableViewCell
в любом месте.
Привет, Кажется, это работает. Спасибо, но я хочу понять, как вы используете приоритет ограничения высоты, чтобы показать и скрыть его. Вы можете мне это объяснить? – Madu
Да, в основном вам нужно установить приоритет низкого для просмотра, который вы хотите свернуть. а также подпункты этой точки зрения. – iOSEnthusiatic
Не могли бы вы рассказать мне какую-нибудь документацию, где упоминалось, что или есть какой-то другой трюк, с которым вы столкнулись. Я все еще не могу понять, как приоритет используется для его краха. – Madu