2012-01-16 2 views
1

각 셀 안에 버튼이 있습니다. 눌렀을 때, 이미지는 선택을 나타 내기 위해 변경됩니다 (기본적으로 체크 박스). 아래로 스크롤 할 때 ... 위로 스크롤하여 위로 이동하십시오. 이미지가 원래 이미지로 되돌아갑니다.uitableview를 스크롤 할 때 이미지가 원본으로 돌아갑니다

이 질문이 꽤 유사합니다

Preserve Cell Image After Scrolling UITableView

그리고 다른 사람. 그러나 좋은 대답을 찾을 수없는 것 같습니다. 셀이 화면을 벗어날 때 uitableview 설정 방법으로 되돌아가는 것을 이해합니다. 하지만 변경된 이미지를 uitableview에 어떻게 저장합니까? 스크롤 할 때 원래 이미지로 돌아 가지 않습니다.

미리 감사드립니다. =)

답변

4

셀이 재사용되므로 변경됩니다. 셀이 화면에서 벗어나면 뷰 밖으로 나가서 다시 사용 수영장으로 되돌립니다. 그런 다음 다시 cellForRowAtIndexPath에 대기열에서 꺼내 기본값으로 다시 설정합니다.

귀하가 연결 한 질문은 귀하가 따라야하는 것과 정확히 일치합니다. 보기 컨트롤러에 셀의 상태를 저장 한 다음 cellForRowAtIndexPath에 다시 설정하면 해당 상태를로드하고 셀을 적절히 설정해야합니다.

귀하의 방법에 대한 간단한 방법은 NSArray을 테이블의 행 수와 동일한 크기로 설정 한 다음 부울 값이 포함 된 각 행에 NSNumber을 저장하는 것입니다. 또는 선택 상태로 해제하십시오. 사용자가 토글하면 배열의 값을 토글 한 다음 cellForRowAtIndexPath에서 해당 값을 읽고 적절하게 설정합니다.

+0

아아 ... NSArray 방식으로하는 것이 완벽합니다. 감사! – TheTC

0

사용자가 테이블을 선택했기 때문에 테이블보기 셀의 선택 상자가 선택된 상태로 변경된다고 가정합니다. UI 요소를 사용하여 앱의 상태를 유지하면 안됩니다. 즉, 사용자가 체크 박스를 탭하면 해당 이벤트를 사용하여 앱의 데이터 객체에서 상태 변경을 어떻게 든 반영해야합니다. 그런 다음 해당 셀을 다시 표시해야 할 경우 이전에 저장 한 상태로 셀을 구성합니다. 이것은 세포 재사용 및보기 언로드와 같은 것들을 허용하고 좋은 습관 주위에 있습니다.

관련 문제