2017-05-09 1 views
2

이 내 UICollectionView입니다UICollectionView 셀을 setSelected : 메서드에서 다중 선택되도록하는 방법은 무엇입니까? <p><img src="https://i.stack.imgur.com/TJz4Q.jpg" width="322"></p> <p>그리고 컬렉션 셀에</p> , 나는 그 자체 셀 색상을 선택 할 수있는 <code>setSelected:</code> 방법이있다 :

- (void)setSelected:(BOOL)selected { 

    [super setSelected:selected]; 

    //self.selected = !selected; 

    // checked 
    if (selected) { 
     self.backView.backgroundColor = APP_COLOR; 
     self.number_label.textColor = [UIColor whiteColor]; 
     self.multiple_label.textColor = [UIColor whiteColor]; 

    } 
    // uncheck 
    else { 

     self.backView.backgroundColor = [UIColor whiteColor]; 
     self.number_label.textColor = HexRGB(0x999999); 
     self.multiple_label.textColor = HexRGB(0xcccccc); 
    } 
} 

하지만 내있는 tableView에서, 나는 경우 다른 셀을 클릭하면 선택한 셀이 선택 취소되어 셀에서 하나의 셀만 선택됩니다.

그래서 어떻게 UICollectionView에서 셀을 다중 선택합니까?

답변

1

당신은 설정해야 allowsMultipleSelectionYES에 : 사용자가 수집보기에서 하나 개 이상의 항목을 선택할 수 있는지 여부를 결정

부울 값입니다.

이 속성은 여러 항목을 동시에 선택할 수 있는지 여부를 제어합니다. 이 속성의 기본값은 false입니다. 이 속성 값이 인 경우이면 셀을 탭하면 현재 선택 영역에 추가됩니다 (대리인이 셀을 선택할 수 있다고 가정 할 경우). 셀을 다시 누르면 선택한 셀이 제거됩니다.

+0

감사합니다. 다른 질문은 다중 셀을 선택한 경우 어떤 셀을 선택했는지 어떻게 알 수 있습니까? –

+0

@ s-n-2 [collectionView]를 호출하여 선택된 셀의 색인 경로를 가져올 수 있습니다. indexPathsForSelectedItems'] (https://developer.apple.com/reference/uikit/uicollectionview/1618099-indexpathsforselecteditems?language=objc) – ozgur

0

UITableViewUICollectionView은 모두 @property (nonatomic) BOOL allowsMultipleSelection; // default is NO입니다. YES로 설정하십시오.

0

다른 방법은 didSelectItemAtIndexPath에 배열에 indexPath를 저장하고 이미 존재하는 경우 배열을 체크인 한 다음 다른 배열을 배열에서 제거합니다. cellForItemAtIndexPath 메서드는 array의 indexPath를 비교합니다.