2010-01-05 3 views
2

Я пытаюсь создать таблицу с изображением в качестве фона. Для достижения этой цели, я начал с фоном:BackgroundColor надписи UITableViewCellStyleSubtitle?

self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; 

В результате фоновое изображение, которое появляется в tablecells, а также. Это не то, что я хочу, так что я попытался установить BackgroundColor ячейки:

cell.backgroundColor = [UIColor whiteColor]; 

Это не имело никакого эффекта вообще !!!. Хм, странно. Так что я попытался это:

UIView *backgroundView = [[UIView alloc] init]; 
backgroundView.backgroundColor = [UIColor whiteColor]; 
cell.backgroundView = backgroundView; 
[backgroundView release]; 

Это работает почти. Остается только проблема, что textLabel & detailTextLabel все еще показывает фон позади них. Установка backgroundColor на эти ярлыки на белый тоже ничего не делает.

Как это сделать? Где я ошибаюсь? Я пытаюсь достичь tableView, как приложение worldClock.

ответ

10

Чтобы изменить цвет фона табличной ячейки, вам необходимо установить его в tableView:willDisplayCell:forRowAtIndexPath:, а не tableView:cellForRowAtIndexPath: в противном случае он не будет иметь никакого эффекта, например:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    cell.backgroundColor = [UIColor whiteColor]; 
} 
+0

Спасибо! Только то, что мне было нужно. –

+0

Я до сих пор не понимаю, почему использование cellForRowAtIndexPath: не работает, но вы решили мою проблему. Благодаря! – radven

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