**如何選擇的CollectionView單細胞和取消選擇所有其它細胞
我已經水平的CollectionView其中選擇的單元有橙色 漸變顏色和所有其他取消細胞灰色IM 僅使用didselect委託方法但我正在逐漸 多個單元格的選擇問題,我有表 視圖與同一個概念的問題,同時滾動和我尋覓了很多,但我還沒有得到重用細胞的 正確答案
**
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
DateTimeCell * cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"DateTimeCellID" forIndexPath:indexPath];
if (self.selectedIndexPath != nil && indexPath == self.selectedIndexPath)
{
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = cell.mainView.bounds;
gradient.startPoint = CGPointZero;
gradient.endPoint = CGPointMake(1, 1);
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:238.0/255.0 green:42.0/255.0 blue:123/255.0 alpha:1.0] CGColor],(id)[[UIColor colorWithRed:241.0/255.0 green:90.0/255.0 blue:41.0/255.0 alpha:1.0] CGColor], nil];
[gradient setMasksToBounds:NO];
cell.mainView.backgroundColor = [UIColor clearColor];
[cell.mainView.layer insertSublayer:gradient atIndex:0];
[indexPaths addObject:self.selectedIndexPath];
}
else
{
[cell.mainView setBackgroundColor:[self colorWithHexString:@"383F4A"]];
}
return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
indexPaths = [NSMutableArray arrayWithObjects:indexPath, nil];
if (self.selectedIndexPath)
{
// if we had a previously selected cell
if ([indexPath compare:self.selectedIndexPath] == NSOrderedSame)
{
// if it's the same as the one we just tapped on, then we're unselecting it
NSLog(@"Selected");
}
else
{
// if it's different, then add that old one to our list of cells to reload, and
// save the currently selected indexPath
[indexPaths addObject:self.selectedIndexPath];
self.selectedIndexPath = indexPath;
}
}
else
{
// else, we didn't have previously selected cell, so we only need to save this indexPath for future reference
self.selectedIndexPath = indexPath;
}
dispatch_async(dispatch_get_main_queue(), ^{
[collectionView reloadItemsAtIndexPaths:indexPaths];
});
}
您需要重新加載所有行此。 –
多個單元格現在正在單擊選中。 –
在重新加載後管理您所需的選定單元格。 –