2013-06-09 3 views
0

테이블보기 내가 가지고있는 셀 배경색이 자주 변경됩니다. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath에 설정된 색상이 미세하지만 약간의 색상은 같은 테이블 뷰로드 한 후 설정됩니다 셀이 그것을 원래는 밖으로 스크롤 할 때 설정 한 것을 다시 되돌아갑니다 그 방법을 변경하면스크롤 후 TableView 색상 재설정

- (void) ChangeCellColorAtIndexPath:(NSIndexPath *)indexPath { 

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:currentCell inSection:0]]; 

cell.backgroundView.backgroundColor = [UIColor orangeColor];  


} 

전망. 내가 볼 수 없게 스크롤하면 어떻게 같은 색을 유지할 수 있는지 확인할 수 있습니다.

+0

언제 어떻게이 메소드를 호출합니까? 셀을 만들거나 재사용 할 때 cellForRowAtIndexPath에서 호출해야합니다. – katzenhut

+0

'cellForRowAtIndexPath'는 그 시점에 표시되는 셀만 업데이트합니다. 그 방법으로 배경을 설정하는 것이 좋습니다. –

답변

2

셀로드 프로세스의 작동 방식을 고려해야합니다. 보이는 셀의 색을 설정하고 사용자가 해당 셀을 볼 수없는 지점으로 스크롤 한 다음 다시 원래 위치로 스크롤하면 테이블보기 다시 tableView:cellForRowAtIndexPath:을 호출하면 새 셀이 만들어집니다 (내가 이미 생각한대로 올바르게 작업하면 이미 만들어진 셀이 다시 사용됩니다). 이전에 설정 한 배경색은 무시됩니다.

해결책은 각 셀이 가지고 있어야하는 색을 알고 tableView:cellForRowAtIndexPath:에 지정하고 색을 설정하는 것입니다.

+0

대단히 감사합니다. 정확히 제가 필요한 것입니다. 나는 그것이'tableView : cellForRowAtIndexPath :'를 회상 할 것이라고 생각하지 않는다. 그것은 나의 이슈였다. 너는 내 질문에 대답했을뿐만 아니라 나에게 아주 중요한 지식을 주었다. 고맙습니다! – Tanner

+0

그래서 문제가 해결되면 답변을 수락하십시오. – e1985

+0

좋은 지적. 잡았다 – Tanner