UICollectionViewCell - 如何在UIButton操作方法中选择所有项目/单元格

时间:2014-05-04 17:53:37

标签: ios uibutton uicollectionviewcell

我点击UICollectionViewCell后尝试选择所有UIButton s。

我该怎么做?

4 个答案:

答案 0 :(得分:3)

针对Swift 3进行了更新

Just Shadow的答案更新为Swift 3

  for i in 0..<assetCollectionView.numberOfSections {
    for j in 0..<assetCollectionView.numberOfItems(inSection: i) {
        assetCollectionView.selectItem(atIndexPath: IndexPath(row: j, section: i), animated: false, scrollPosition: .none)
    }
}

答案 1 :(得分:2)

您可以通过以下方式选择第一部分中的所有单元格:

for (NSInteger row = 0; row < [self.collectionView numberOfItemsInSection:0]; row++) {
    [self.collectionView selectItemAtIndexPath:[NSIndexPath indexPathForRow:row inSection:0] animated:NO scrollPosition:UICollectionViewScrollPositionNone];
}

如果你有超过1个部分,只需使用另一个嵌套for循环遍历所有部分。

答案 2 :(得分:2)

这个解决方案适用于我:

for (NSInteger i = 0; i < [_assetCollectionView numberOfSections]; i++)
{
    for (NSInteger j = 0; j < [_assetCollectionView numberOfItemsInSection:i]; j++)
    {
        [_assetCollectionView selectItemAtIndexPath:[NSIndexPath indexPathForRow:j inSection:i] animated:NO scrollPosition:UICollectionViewScrollPositionNone];
    }
}

答案 3 :(得分:2)

已更新为Swift 4

更新了Indrajit Sinh Rayjada的答案,并将其放入扩展中,因为它太笼统了,它实际上应该是扩展。

extension UICollectionView {
    func selectAll() {
        for section in 0..<self.numberOfSections {
            for item in 0..<self.numberOfItems(inSection: section) {
                self.selectItem(at: IndexPath(item: item, section: section), animated: false, scrollPosition: [])
            }
        }
    }
}