2014-01-30 5 views
1

У меня есть проблемы с настройками элементов моего представления в пользовательской ячейке. Ячейки таблицы отображаются в моем таблицеView, но свойства не задаются и, таким образом, появляются только пустые/пустые ячейки.Не удается установить свойства на пользовательской ячейке вида таблицы

TableView не является контроллером tableView, а только tableView в viewController.

У меня есть следующие файлы:

CustomCell.xib:
Здесь я использую IB для создания пользовательской ячейки с помощью Table Vi Ce из библиотеки объектов с метками и изображениями на. Я установил идентификатор как orderListCell. Из этого экрана я Ctrl + перетаскивание, чтобы создать выходные отверстия в customCell.h

CustomCell.h
Здесь я вижу все мои IBOutlets как свойства из указанного выше файла

CustomCell.m
Здесь я оставляю как

OrderListViewController.h
Здесь я импортировать customCell.h и использование протоколов UITableViewDelegate, UITableViewDataSource

OrderListViewController.m
Здесь я установил мой Tableview делегат и Tableview DataSource к себе. Я также создаю IBOutlet для своего tableView из раскадровки.

Я использую следующий код, чтобы попытаться отобразить мои клетки:

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath  *)indexPath 
{ 

static NSString *cellIdentifier = @"orderListCell"; 

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

if (!cell) { 
    cell = [[CustomCell alloc] init]; 
} 

cell.myLabel.text = @"aaaaaaaa"; //[[self.orders objectAtIndex:indexPath.row] objectForKey: @"tableNo"]; 



return cell; 
} 

Я упростил мой код немного, чтобы продемонстрировать, что даже установку метки для простой строки (@ «AAAAAAAA») не работает. Когда я смотрю на объекты в моем отладчике, у ячейки есть все свойства из IBOutlets, и ячейка появляется в моем таблицеView, только label.text = xxx, похоже, не работает.

Я посмотрел на следующие должности, но либо не понимают это правильно или это не работает для меня:

ios 7 customizing UITableViewCell's content view
Can't set properties in Custom UITableViewCell
Set label for a custom cell

Любая помощь или совет был бы весьма признателен

ответ

2

cell = [[CustomCell alloc] init]; не создает вашу ячейку из XIB, поэтому ни один из содержимого XIB не будет создан.

Используйте registerNib:forCellReuseIdentifier:, чтобы зарегистрировать XIB с табличным представлением, чтобы он создавал для вас экземпляры ячеек (вам не нужно создавать экземпляры самостоятельно в cellForRowAtIndexPath).

Если вы не хотите этого делать, вы можете явно загрузить свой NIB nibWithNibName:bundle: и instantiateWithOwner:options:, а затем получить экземпляр ячейки из списка возвращенных представлений (в котором должно быть только 1 элемент).

+0

Ничего себе этот вопрос действительно расстроил жизнь из меня. Ваш ответ поставил меня на правильный путь, и после некоторых исследований и испытаний и ошибок я, наконец, понял это. Перед использованием registerNib: forCellReuseIdentifier: сначала нужно создать nib, используя [UINib nibWithNibName: @ "MyCustomCellName" bundle: nil], а затем использовать это в первом упомянутом методе. Огромное спасибо! – Chris

Смежные вопросы