UITableViewCell의 하위 클래스가 있습니다. 여기에는 UIImageViews, Labels 등이 포함되어 있습니다.
이 셀은 재사용이 가능하기 때문에 조금 모양을 바꿀 수 있기를 바랍니다. 현재 표시중인 데이터에 따라 다릅니다.UITableViewCell은 그리기 전에 컨텍스트를 지우지 않습니다.
UIImageView* delimeterView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellDelimiter.png"]];
: -
그래서 예를 들어 나는 나의 정의에있는 UITableViewCell이보기가
- (void) setRecord:(id)record__ {
if (record__.type == NO_DELIMETER_VIEW)
delimeterView.hidden = YES;
else
delimeterView.hidden = NO;
[self setNeedsLayout];
}
그러나 문제가 있다는 것입니다 delimeterView init 메서드에서 한 번 그려진 것처럼 그리기 컨텍스트가 변경되거나 지워지지 않은 것처럼 항상 셀에 표시됩니다. 나는 셀 및 해당 contentView에 대해 YES로 clearsContextBeforeDrawing 속성을 설정해 보았습니다. 셀 및 해당 contentView에 대한 불투명도 설정을 시도했는데 투명성을 사용하는 경우에 문제가있을 수 있으므로 읽었습니다. 조회수.
아무 도움이되지 않습니다.
UITableViewCell은 그래픽 컨텍스트를 지우지 않고 오래된 요소 위에 페인트하는 것처럼 보입니다.
내가 뭘 잘못하고 있는지에 대한 정보는? 사용자 지정 그림을 사용하여이 문제를 해결할 수 있지만 차라리하지 않을 것입니다.
그리고 [- UITableView cellForRowAtIndexPath :] (또는 - [UITableViewDelegate tableView : willDisplayCell : forRowAtIndexPath :])에서 반환 할 때마다 셀에서 -setRecord :를 호출하고 있습니까? –
예, cellForRowAtIndexPath 메소드에서 매번 호출하도록되어 있습니다. – Alexey