До сих пор я работал над вычислением пользовательской высоты ячеек. Мне нужно изменить размер ячейки автоматически после сбора данных.Вычислить высоту метки автоматически в соответствии с линией текста
self.countLabel
и и self.descriptionLabel
принимают только одну строку текста, с другой стороны, self.detailLabel
может содержать несколько строк. Таким образом, приведенные ниже коды - это то, как я устанавливаю ограничения.
CustomCell.m
- (void)initView
{
self.countLabel = [UILabel new];
self.countLabel.text = @"AAAAAA";
self.countLabel.font = [UIFont fontWithPixel:22];
self.countLabel.numberOfLines = 1;
[self.contentView addSubview:self.countLabel];
self.detailLabel = [UILabel new];
self.detailLabel.text = @"Number of people: ";
self.detailLabel.font = [UIFont fontWithPixel:22];
self.detailLabel.textColor = [UIColor qu_grayColor];
[self.contentView addSubview:self.detailLabel];
self.descriptionLabel = [UILabel new];
self.descriptionLabel.numberOfLines = 1;
self.descriptionLabel.text = @"ABCDEFGHIJKLM";
self.descriptionLabel.font = [UIFont fontWithPixel:26];
[self.contentView addSubview:self.descriptionLabel];
[self.countLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView).offset(20);
make.top.equalTo(self.contentView).offset(5);
make.right.equalTo(self.contentView).offset(-10);
}];
[self.detailLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView).offset(20);
make.top.equalTo(self.countLabel.mas_bottom);
make.bottom.equalTo(self.descriptionLabel.mas_top);
make.right.equalTo(self.contentView).offset(-10);
}];
[self.descriptionLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView).offset(10);
make.right.equalTo(self.contentView).offset(-10);
make.bottom.equalTo(self.contentView).offset(-15);
}];
}
Если вы ориентируетесь на iOS 9+, это можно легко сделать с помощью stackviews. Вам нужно будет добавить метки в виде вертикального стека. Расположите представление стека в ячейке, используя автозапуск. – TheAppMentor
@TheAppMentor Oop, это приложение должно поддерживать до iOS7.0. –