2014-12-04 4 views
0

here에서 테이블보기 다중 선택을 사용하는 방법을 배웠습니다. 그러나 이것을 어떻게 사용자 정의 할 수 있습니까? 아래 그림과 같이 이러한 기본보기를 내 자신의보기로 바꾸려면 어떻게해야합니까? 당신이 각 셀에 UIImage보기를 추가 addSubview를 호출 할 수 있습니다, 또는 당신이 당신의 자신있는 UITableViewCell 클래스를 만들 수 있도록테이블보기 다중 선택 체크 표시

enter image description here

답변

1

UItableViewCellUIView의 서브 클래스입니다!

희망이 도움이됩니다.

+0

감사 합니다만, 이미지의 빨간색 원 안에있는보기가 내 제어하에 있지 않습니다. 테이블보기가 편집 모드로 전환 될 때 나타납니다. 시스템 스타일 셀이나 사용자 정의 셀이든 상관 없습니다. – axl411

+0

이러한보기를 사용할 필요가 없으며 사용자 지정 셀을 직접 만들고 원하는 셀을 추가 할 수 있습니다. – shim

+0

무슨 뜻인지 알 겠어. 그게 내 솔루션을 얻은 방법입니다 - 셀의 사용자 정의보기를 사용하고 자동 레이아웃 제약 조건을 변경하여 테이블을 이동하면 편집 모드로 전환 할 필요가 없습니다. 건배. – axl411

0

내 솔루션을 찾았습니다 : auto layout constraints을 변경하십시오.

내 테이블 뷰 셀은 사용자 정의 셀입니다. 선택 표시기를 표시하기 위해 오른쪽으로 모든 뷰를 이동해야하므로 원래 사용자 정의 뷰 뒤에 맞춤형 인디케이터를 놓은 다음 사용자 정의 셀 서브 클래스를 사용하여 내 뷰의 제한 조건을 업데이트하여 아래 표시기를 나타냅니다.

그들은 다음과 같이 :

imageViewLeadingConstraint
// in the cell subclass 

- (void)showSelectionIndicator { 
    self.imageViewLeadingConstraint.constant = 50.f; 
} 

- (void)hideSelectionIndicator { 
    self.imageViewLeadingConstraint.constant = 15.f; 
} 

단순히 셀 내 모든 뷰의 위치를 ​​결정하는 주요 제약이다.

그런 다음보기 컨트롤러에서 선택 상태와 선택한 indexPaths를 직접 관리합니다. cellForRowAtIndexPath 방법에서,이 같은 추가 설정 셀 것 :

- (void)toggleDownloading { 
    self.isSelectingDownloads = !self.isSelectingDownloads; 

    [self.tableView reloadData]; 
} 

이 모든 작업을합니다 :

// ... normal cell set up 
if (self.isSelectingDownloads) { 
    [cell showSelectionIndicator]; 
} else { 
    [cell hideSelectionIndicator]; 
} 
// return cell 

나는 또한 선택 상태를 전환하는 방법을해야합니다. toggleDownloading을 호출하면 셀의 뷰가 예상대로 오른쪽으로 이동합니다. 물론 선택을 관리하려면 didSelectRowAtIndexPath에서 일부 논리를 수행해야합니다.

관련 문제