2012-02-21 5 views
1

Я использую базовую ячейку таблицы, настроенную в IB. Единственная настройка, которую я применяю, - это cellForRowAtIndexPath, где я просто устанавливаю цвет фона метки ячейки (не цвет самой ячейки).Цвет фона UITableViewCell

[[cell textLabel] setBackgroundColor:[UIColor yellowColor]]; 

Когда таблица сначала нарисована, цвет фона не применяется. Когда я прокручиваю вниз, это - применяется к новым ячейкам, когда они нарисованы. Аналогично, если я прокручиваю резервную копию, верхние ячейки повторно рисуются с правильным цветом фона.

Каково объяснение этого?

enter image description here enter image description here

Edit - вот мой cellForRowAtIndexPath, и установить в IB:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
ItemCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ItemCell2"]; 
[[cell textLabel] setBackgroundColor:[UIColor yellowColor]];    
return cell; 

}

enter image description here

+2

Можете ли вы опубликовать весь свой метод tableView: cellForRowAtIndexPath: '? Помогло бы нам определить проблему. –

+0

Кроме того, вы отправили одно и то же изображение дважды. –

+0

Спасибо Eli - я исправил это и добавил то, что вы просили. –

ответ

5

вы должны использовать

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 

из документации:

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

+0

Спасибо - однажды я искал willDisplayCell Я также нашел это объяснение полезным http://stackoverflow.com/questions/1890265/what-is-isitableviewdelegate-willdisplaycellforrowatindexpath-for –

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