У меня есть контроллер tableviewcontroller, подключенный к настольному представлению. Я хочу иметь пользовательский тип ячейки в представлении таблицы. Пользовательская ячейка должна иметь три UILabels
и UIImageView
.Пустые ячейки прототипа в раскадровки
Я разработал пользовательскую ячейку в виде таблицы (используя ячейку прототипа) в раскадровке. Я создал подкласс UITableViewCell
и связал ячейку прототипа с этим классом. Я также установил идентификатор повторного использования ячейки как «ItemCell».
В UITableView
У меня есть кнопка добавления. Когда я нажимаю эту кнопку, в таблицу просмотра должны быть добавлены новые ячейки (пользовательские ячейки). Они (я могу сказать по тому, что я могу их выбрать), за исключением того, что они пусты (хотя на ярлыке должно отображаться что-то). Метка подключена к подклассу UITableViewCell
как свойство IBOutlet
и имеет серый фон, поэтому я вижу его рамку, но все, что я вижу, это белая строка.
Что случилось?
Это метод viewDidLoad
от UITableViewController
.
- (void)viewDidLoad {
[super viewDidLoad];
[self.tableView registerClass:[ItemCell class] forCellReuseIdentifier:@"ItemCell"];
self.navigationItem.title = @"Home";
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(addNewItem:)];
self.navigationItem.leftBarButtonItem = self.editButtonItem;
}
Это код метода cellForRowAtIndexPath:
.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ItemCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ItemCell" forIndexPath:indexPath];
cell.nameLabel.text = @"hello";
return cell;
}
Если вы создаете ячейку на раскадровке, вам не нужно регистрировать ее самостоятельно. – Abizern