2013-10-14 8 views
1

아이폰 애플리케이션을 기반으로 테이블 뷰를 만들고 있는데, 전체 테이블 뷰 셀 하나씩 비활성화해야하는 경우.UITableViewCell 선택을 하나씩 비활성화하려면 어떻게합니까?

요구 사항은 같은 -

사례 1 : -

처음에만 첫 번째 테이블 셀의 행 사용자 상호 작용 나머지는 해제해야 활성화해야합니다. CellForRowAtIndexPath 메서드에서 indexPath.row 0을 활성화하려면이 작업을 쉽게 수행 할 수 있습니다.

사례 2 : -

사용자가 첫 번째 셀 때 그는 다시 돌아 올 것이다에 탭 경우 다음 첫 번째 셀이 비활성화되며 두 번째 셀은 나머지 테이블 셀은 초 후이 시간에 해제됩니다 (사용하도록 설정해야합니다 세포).

사례 3 : -

사용자가 두 번째 테이블 셀을 누른 뒤 떨어져 셋째 세포에서 다시이 테이블에 올 경우 다시 말하지만, 다른 사람들이 그 의미

... 비활성화 등등해야 일련 번호로 모든 테이블 셀을 하나씩 비활성화해야합니다. 인덱스를 설정하면 가능하지만이를 수행하는 적절한 방법은 아닙니다. 자, 내가이 상황을 위해 필요한 조건을 제안 해 주시겠습니까? 추가 진행을 제안 해주세요.

감사합니다.

답변

0

여러 가지 방법이 있습니다 (지금부터는 n 개의 행과 단 하나의 섹션이있는 선형 테이블 뷰를 가정합니다).

예를 들어 BOOL enabled 속성을 셀 모델 객체에 추가 할 수 있습니다. 컨트롤러의 didSelectRowAtIndexPath:에서 해당 속성을 확인하고 NO으로 설정하면 아무 작업도 수행하지 않습니다. YES으로 설정된 경우 해당 페이지로 이동하여 enabled 속성을 인덱스 위치 i + 1 (또는 마지막 항목이고주기를 원할 경우 위치 0)으로 바꿉니다.

1

활성화되어야하는 셀 번호를 보유하는 인스턴스 변수 만 유지하십시오. enabledCell.

enabledCell을 0으로 초기화하십시오. didSelectRow가 enabledCell을 증가시키고 tableView를 다시로드하십시오. indexPath 행의 셀에서 indexPath가 enabledCell 값과 동일한 경우에만 셀을 활성화하십시오.

+0

@ KedarThanks 생각은 있지만 잘못된 것이 있습니다. if (indexPath.row == enabledCell) then cell.userInteractionEnabled = Yes; 그렇지 않으면 사용자 상호 작용이 없습니다. 최선의 제안을위한 하나의 upvote ... 감사합니다. –

관련 문제