Пользовательский 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?
Спасибо за вашу помощь!
Ответы
Ответ 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.