Пользовательский UITableViewCell со стилем субтитров - PullRequest
21 голосов
/ 27 мая 2010

Я использовал это руководство: 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?

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

Ответы [ 2 ]

16 голосов
/ 27 мая 2010

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

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

4 голосов
/ 12 июня 2014

Если вы хотите использовать 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. Настройка построителя интерфейса

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...