2012-08-24 3 views
0

단추가있는 사용자 지정 셀을 사용합니다. 편집 모드에서 버튼이 사라져야합니다. 상태 변화를 편집 할 때 나는이 메소드를 호출테이블보기 (Xcode, iPhone)의 모든 셀에 액세스

-(void)setButtonsVisibility:(BOOL)visibility { 
    UIButton *currButton; 
    for (int i = 0; i <= [array count] - 1; i++) { 
     currButton = (UIButton *)[_tableView viewWithTag:10000+i]; 
     if (currButton) { 
      [currButton setAlpha:visibility]; 
     } 
    } 
} 

그것은 잘 작동합니다. 그러나이 방법은 현재 보이지 않는 세포에서는 작동하지 않습니다. 예를 들어, 테이블에 10 개 이상의 셀이있는 경우.

답변

0

셀을 올바르게 다시 사용하는 경우 메모리에있는 유일한 UITableViewCell은 보이는 10 개입니다.

단추를 표시하거나 숨길 지 여부를 나타내는 UITableViewDataSource 인스턴스에 BOOL 플래그를 추가하는 것이 가장 쉬운 솔루션입니다. 그런 다음 표시되는 ~ 10은 기존 방법으로 올바르게 업데이트되고 스크롤 한 후에는 tableView:cellForRowAtIndexPath:에서 호출되며 버튼의 알파 속성을 플래그의 값으로 설정할 수 있습니다.

+0

나는 그것을 만들었다. 그러나 이상한 것이 있습니다. 편집 모드를 켜고 테이블을 위아래로 이동 한 다음 편집 모드를 해제하면 편집 모드를 켜면 화면에없는 버튼이 보이지 않습니다. 첫 번째 게시물의 메소드가 작동하지 않는 이유를 모르겠습니다 ... 모든 버튼의 태그는 = 10000 + indexPath.row입니다. – user1561346

+0

죄송합니다. 조언은 매력처럼 작동합니다. 내 코드에 실수가있었습니다. 대단히 감사합니다 !! – user1561346

관련 문제