iPhone: Сепаратор UITableview разочаровывается, когда список длинный? - PullRequest
0 голосов
/ 13 августа 2011

У меня есть сгруппированное табличное представление, которое я устанавливаю в качестве фона в viewDidload;

self.tableView.backgroundView = nil;
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.separatorColor= [UIColor APP_SEPERATOR_COLOR];   

и это метод, который я установил:

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];            
    }
        cell.backgroundColor=[UIColor clearColor];
        cell.backgroundView.alpha=0;
        cell.textLabel.text=cellValue;

    return cell;

Это работает нормально, но когда есть 30-40 ячеек, тогда разделительная линия и границы таблицы начинают теряться, когда я прокручиваю вниз, и больше никогда не возвращаюсь ... когда я прокручиваю вверх.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 14 августа 2011

В результате происходит повторное использование ячеек, когда они прокручиваются и выключаются на экране. В этом случае настройка в tableView:cellForRowAtIndexPath: вызывается. Это переопределит то, что уже нарисовано, включая границу.

Просто переместите ваш код, стилизующий ячейку, в часть определения ячейки:

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];            
    cell.backgroundColor=[UIColor clearColor];
    cell.backgroundView.alpha=0;
}
    cell.textLabel.text=cellValue;
    cell.textLabel.font = [UIFont APP_QUESTIONS_FONT];
    cell.textLabel.textColor=[UIColor APP_TEXT_COLOR];
return cell;
0 голосов
/ 14 августа 2011

Почему ты не можешь сказать

self.tableView.separatorColor = [UIColor colorWithHue:0.56f  saturation:0.98 brightness:0.65 alpha:0.6]; 

там самому?потому что, когда вы прокручиваете UITableView, каждая ячейка вызывает APP_SEPERATOR_COLOR, а затем требуется время для перерисовки.есть ли причина использовать APP_SEPERATOR_COLOR как отдельный метод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...