Подтвердить что ты не робот

Пользовательский UITableViewCell с типом субтитров

Я использовал это руководство: http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder, чтобы иметь возможность создавать собственный пользовательский UITableViewCell с хорошим фоновым изображением в построителе интерфейса. Но я хотел бы, чтобы стиль ячейки был UITableViewCellStyleSubtitle, чтобы все еще иметь возможность использовать textLabel и detailTextLabel для моей пользовательской ячейки. Могу ли я каким-то образом установить стиль ячейки в построителе интерфейса?

Теперь при использовании только textLabel:

cell.textLabel.text = @"Title";  
cell.detailTextLabel.text = @"Details";

Также я использую прозрачное изображение в качестве фона, но textLabel имеет белый фон. Могу ли я изменить это в построителе интерфейса? Или вы думаете, что я должен просто добавить свои собственные метки в пользовательскую ячейку в построителе интерфейса и пропустить стандартную textLabel и detailTextLabel?

Спасибо за вашу помощь!

4b9b3361

Ответ 1

Используйте опцию B. Либо полностью используйте собственную пользовательскую ячейку, либо полностью используйте ячейку в стиле Apple. Попытка смешивания и совпадения не поддерживает переходы.

Если вы хотите удобное свойство для detailTextLabel, подкласс UITableViewCell и верните UILabel, который вы создаете в nib. Дайте ему другое имя, чем detailTextLabel.

Ответ 2

Если вы хотите использовать detailTextLabel в пользовательской кнопке, выполните следующие действия:

1. Переопределить UITableViewCell

// MYTableViewCell.h:
@interface MYTableViewCell : UITableViewCell
@end

2. Добавить новый IBOutlet в ваш подкласс

// MYTableViewCell.m
@interface MYTableViewCell ()

@property (nonatomic, weak) IBOutlet UILabel* detailLabel;

@end

3. Переопределить -detailTextLabel

@implementation MYTableViewCell

- (UILabel*)detailTextLabel
{
    return self.detailLabel;
}

@end

4. Настройка компоновщика интерфейсов

Задайте настраиваемый класс для ячейки tableview MYTableViewCell и сопоставьте свой UILabel с новым IBOutlet. Будущие вызовы detailTextView на вашей ячейке таблицы теперь корректно вернут правильный текстовый вид. Таким образом, вы можете смешивать пользовательские и ОС, снабженные ячейками таблицы, не беспокоясь о detailTextView.