Вам нужно будет изменить свой стиль кодирования, когда вы работаете с cellForRowAtIndexPath
.Хотя ваша реализация с циклом for
делает его простым и приятным, на самом деле, просто добавить значения в cell.contentView
без итерации намного проще.Я бы посоветовал вам создать три поля UILabel
, например, label1
, label2
и label3
.И вы можете предоставить им текст для каждого index path
и, наконец, добавить их в качестве подпредставления к cell.contentView
.
Это действительно просто, и вы сможете увидеть 3 метки в каждой строке.
Примечание. При использовании этого метода вам необходимо будет точно установить размер кадра 3 UILabels
, чтобы не мешать внешнему виду.
A ЛучшеПодход:
Вышеприведенная реализация является самой простой, но имеет проблему с cell reusability
, и если вы прокрутите эту настройку вверх и вниз, вы увидите, что все UILabels
перезаписаны и перепутанывесь вид.Эта проблема неизбежно возникает ~, если у вас нет подходящего представления, которое меньше текущего представления, и у вас нет представления unscrollable
.
Решение:
Создайте подкласс UITableViewCell
и создайте свой собственный CustomUITableViewCell
с 3 UILabels
, встроенным в него, и используйте его для реализации tableView с reusability
.Вам нужно будет переопределить метод layoutSubviews
.
- (void)layoutSubviews {
// In this example we will never be editing, but this illustrates the appropriate pattern
[self.contentView addSubview:self.label1];
[self.contentView addSubview:self.label2];
[self.contentView addSubview:self.label3];
[super layoutSubviews];
}
Эта реализация не содержит ошибок, а также довольно проста и логически замечательна (как только вы ее освоите, вы сможете создать подкласслюбой структуры и создать свой собственный вид).