본문 바로가기

Swift

UITableView cell의 background color 변경시 문제

UITableViewCell에서 특정 값에 따라 Cell의 BackgroundColor가 변경되어야 한다.

허나 이 변경에 있어서 처음에 color 설정을 tableView(cellForRowAtIndexPath:) 에서 해 주었는데 셀 내용이 갱신되고 셀을 스크롤하다보니 점점 color가 이상한 cell에까지 설정이 되는 것이었다.


그래서 이번에는 color 설정을 tableView(willDisplayCell:) 여기서 해 주었는데, 뭔가 되는 것 같아 보이더니 더 금방 다른 셀의 색까지 바꿔버리는 현상이 발생하였다.


곰곰히 생각해보니 내 셀을 바꾸는 코드가 

if !cell.result {

    cell.backgroundColor = UIColor.orangeColor()

}

이거였는데 현상을 보니 나중에는 모든 셀이 orange가 되는 것이라 else 구문을 넣어 보았다.

if !cell.result {

    cell.backgroundColor = UIColor.orangeColor()

}

else {

    cell.backgroundColor = UIColor.whiteColor()

}

이렇게 하니 이제는 문제가 없다.