0

9 개의 보이는 항목이있는 UICollectionView가 있습니다.크기 조정 취소 선택되지 않은 셀 UICollectionView

셀을 선택하면 너비와 높이가 변경되지만 선택되지 않은 다른 셀은 모두 변경하지 않습니다.

내가 셀을 선택하면 다른 모든 체크되지 않은 셀이 사라지거나 프레임이 0으로 유지되어야합니다.

또한 내 셀 내에는 선택한 셀을 시작 값으로 반환하는 단추가 있으며이 경우 모든 다른 셀은 원래 크기로 돌아와야합니다.

아무도 이해할 수 있습니까?

내가 선택한 셀

@property (nonatomic, strong) NSIndexPath *selectedIndex; 

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 

     if (self.selectedIndex== indexPath) { 

      // CELL SELECTED CHANGE SIZE 
      return CGSizeMake(collectionView.frame.size.width, collectionView.frame.size.height); 
     } 

     // ORIGINAL SIZE 
     return CGSizeMake(collectionView.frame.size.width/3, collectionView.frame.size.height/3); 

} 

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedIndex = indexPath; 
    [collectionView performBatchUpdates:nil completion:nil]; 
} 
+0

선택/선택되지 않은 세포의 가시성을 처리 할 것인가? 그들은 위치 나 크기를 바꿀 것인가? ;) – trungduc

답변

0

을 확장하는 데 사용하는 코드는 어떻게 선택 해제에이

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ 
    for (UICollectionViewCell* cell in collectionView.visibleCells) { 
     if (cell.selected) {//leave only selected cell visible 
      cell.hidden=NO; 
     } 
     else{ 
      cell.hidden=YES; 
     } 
    } 
} 

복원 가시성

-(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(nonnull NSIndexPath *)indexPath{ 
    for (UICollectionViewCell* cell in collectionView.visibleCells) { 
     cell.hidden=NO; 
    } 
} 

매우 간단한 방법, 막 당신에게 아이디어를주기 위해서.

즉 컬렉션 뷰가 스크롤하는 경우, 당신은 아마 선택하지 않는 어떻게 세포에 대한

-(void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(nonnull UICollectionViewCell *)cell forItemAtIndexPath:(nonnull NSIndexPath *)indexPath 

-(void)collectionView:(UICollectionView *)collectionView willDisplayCell:(nonnull UICollectionViewCell *)cell forItemAtIndexPath:(nonnull NSIndexPath *)indexPath