Я использую код ячейки пользовательского табличного представления Apple и изменяю код drawRect в представлении ячейки, чтобы он выглядел так, как я хочу. Я изменил его, чтобы иметь некоторые UILabels, а также UIProgressView.
Если данные, на которых строится ячейка, не имеют определенного поля, я хочу, чтобы UIProgressView был скрыт. Это работает некоторое время, но когда ячейка попадает в очередь из-за прокрутки, представление прогресса снова начинает отображаться, даже когда я установил ее в значение hidden = YES. Я пытался просто не создавать ProgressView, если не было данных, и это тоже не сработало.
Я думал, что ответ был в [self setNeedsDisplay], но это, похоже, не помогает.
Вот код для просмотра прогресса от drawRect, который продолжает отображаться:
UIProgressView *c1Progress = [[UIProgressView alloc]initWithFrame:CGRectMake(20.0, 70.0, 280.0, 12.0)];
float iProgress = (value / target);
c1Progress.progress = iProgress;
if (!dataExists) {
c1Progress.hidden = YES;
}
[self addSubview:c1Progress];
[c1Progress release];