UITableView имеет ячейки, но не показывает ячеек

#ios #objective-c #uitableview #cocoa-touch

#iOS #objective-c #uitableview #cocoa-touch

Вопрос:

Итак, отображается правильное количество строк. При нажатии на любую строку выполняется правильное действие. Однако самих ячеек нигде не видно.

Я добавил NSTimer в

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

для каждой ячейки, просто чтобы вывести ее за пределы функции — все они говорят, что их superview равен рассматриваемому tableview (и не равен нулю, поэтому я не проверяю nil == nil или что-то в этом роде).

Все они содержат метки с правильным текстом.

Прорисовываются разделительные линии…. Если я изменю фон TableView, фон всей видимой области будет отображаться этим цветом.

Я проверяю, что каждая ячейка не скрыта и не установлена в альфа-значение 0.

Есть ли что-нибудь еще, чего я мог не хватать?

Ответ №1:

Вы загружаете свои ячейки из файла nib или создаете программно?

Вы накладываете другой объект на свою ячейку в подвиде ячейки? Возможно, это скрыто в подвиде; я не могу сказать, поскольку вы еще не опубликовали никакого кода. Учитывая предоставленную вами информацию, трудно определить, почему вы не можете видеть фоновый вид ячеек.

Попробуйте изменить цвет с помощью

 UIView *tmpView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
tmpView.backgroundColor = [UIColor blackColor];
myCell.backgroundView = tmpView;
  

Похоже, вы установили фоновое изображение вашей ячейки в [UIColor clearColor].

Комментарии:

1. Я понятия не имею, что произошло, на самом деле я устанавливал цвет фона на [UIColor grayColor], и никакой разницы не появилось. Я вручную установил шрифт для метки, и внезапно все заработало правильно. Я предполагаю, что по какой-либо причине шрифт, указанный в указателе, был недействительным и при загрузке из указателя происходил сбой? Однако это не полностью отвечает на мои опасения…