Я получаю цвет с сервера и в методе cellForRowAtIndexPath
пытаюсь применить этот цвет к представлению внутри ячейки.
Проблема в том, что все ячейки отображают один и тот же цвет, пока я не прокручиваю таблицу вниз. Когда я начинаю прокручивать, они хорошо обновляют свой цвет.
Я новичок в iOS и Objective-C, поэтому, если бы вы могли мне помочь, я был бы признателен, спасибо.
Перед прокруткой:
После прокрутки:
Некоторый код: (Если вы хотите больше, пожалуйста, скажите мне)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CalendarDayCell *cell = (CalendarDayCell *) [tableView dequeueReusableCellWithIdentifier:@"CalendarDayCell"];
if (cell == nil) {
cell = [[CalendarDayCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CalendarDayCell"];
}
if (self.events.count) {
CalendarEvent *ce = self.events[indexPath.row];
CalendarDayCell *dayCell = (CalendarDayCell *) cell;
// ...
dayCell.viewColorBar.backgroundColor = [self colorWithHexString:ce.color];
return dayCell;
} else {
// Not important
}
}
PS: я также пробовал это по методу willDisplayCell
с теми же результатами.
ИЗМЕНИТЬ:
Наконец я понял, какие были решения.
- IDK, почему XCode изменил высоту цветной полосы на 980 пикселей с 50 пикселей, которые я указал в файле пера. И это приводило к тому, что все ячейки ниже имели одинаковый цвет.
- Я поместил все представления в другое представление и назначил это представление ячейке, потому что некоторые ячейки не отображали свой цвет.
это все