Пользовательский uitableviewcell не будет отображать тексты ярлыков
И значение меток также равно нулю.
Я не уверен, что происходит.
Это мои классы/коды
@interface CustomEventCell : UITableViewCell{
}
@property (nonatomic, weak) IBOutlet UILabel *participant1label;
@property (nonatomic, weak) IBOutlet UILabel *participant2label;
@property (nonatomic, weak) IBOutlet UILabel *status;
@end
Модель события
@interface Event : NSObject{
}
@property NSNumber *matchId;
@property NSString *participant1, *participant2,
-(id)init;
@end
это табличное представление, которое заполняет ячейку
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"EventCell";
CustomEventCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
cell = [[CustomEventCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// events is a NSMutableArray with Event instances
Event *event = [events objectAtIndex:indexPath.row];
cell.participant1label.text = event.participant1;
return cell;
}
Здесь моя настройка
Мне нужно что-то упускать, поскольку у меня есть другое uitableview, и оно заполняет обычай без проблем. Я сравнивал их, и они идентичны. Я даже попытался вернуться к обычной этикетке, и это заполнило бы это, но не обычное.
ИЗМЕНИТЬ:
Изменен неверный скопированный код.
Ответы
Ответ 1
Я написал простое небольшое тестовое приложение, пытающееся воспроизвести то, что вы хотите видеть. Я сделал его доступным здесь с помощью раскадровки. Если вы не можете понять это из этого, то, возможно, вы можете принять тестовое приложение и изменить его так, чтобы оно воспроизводило плохое поведение, которое вы видите.
Мое лучшее предположение о том, что может происходить, это то, что когда вы инициализируете свою ячейку, она не связана с представлением в xib.
Попробуйте установить точку останова:
cell.participant1label.text = event.participant1;
и убедитесь, что cell.participant1label не равен нулю:
NSLog( @"cell.participant1label: %@", cell.participant1label );
У меня была небольшая ошибка, в которой ни один из моих пользовательских ярлыков не показывался, а cell.participant1label был равен нулю. Причина заключалась в том, что я не установил идентификатор для ячейки таблицы пользовательских таблиц в "EventCell". Поэтому я могу предложить перепроверять это и убедиться, что идентификатор действительно соответствует вашему коду и XIB.