UITableView со статическими ячейками без cellForRowAtIndexPath. Как установить чистый фон?
У меня есть статический UITableView, и все выложено на Раскадке. В cellForRowAtIndexPath я просто использую
return [super tableView:tableView cellForRowAtIndexPath:indexPath];
и рабочий стол отлично работает. Однако я хочу установить фоны ячеек на [UIColor clearColor]
Как я могу это сделать? В таблице содержится 30 ячеек, каждый из которых отличается.
Спасибо
Ответы
Ответ 1
Я не совсем уверен, что это сработает, потому что я никогда не пробовал использовать super
для управления ячейками. Если ваш код работает с super
, вы должны уйти от этого, чтобы установить цвет фона:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
cell.backgroundColor = [UIColor clearColor];
return cell;
}
В любом случае, это кажется мне странным способом делать вещи. Обычно ячейки создаются и повторно используются в самом методе в соответствии с стандартным кодом UITableView
boiletplate без вызова super
.
Ответ 2
Попробуйте этот метод делегата:
- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor clearColor];
}
Ответ 3
Вы можете настроить метод и вызвать его в свой viewDidLoad, чтобы получить все ячейки и делать с ними все, что хотите, вы можете использовать это:
NSArray *visibleIndexPaths = [self.tableView indexPathsForVisibleRows];
Чтобы получить все указательные пути для отображаемых в настоящее время ячеек
Затем перебираем их следующим образом:
UITableViewCell *cell = nil;
for (int i = 0; i < 30; i++) {
cell = [self.tableView cellForRowAtIndexPath:[visibleIndexPaths objectAtIndex:i]];
// Do your setup
}
Вы также можете ссылаться на этот документ разработчика Apple в разделе " Техника для содержимого Static Row"