我在普通的 UIViewController 中有一个 UICollectionView。
在集合视图中,我为情节提要中的集合视图单元设计了可重用的 UI。
在 collectionviewcell 内部有一个标签,显示单元格 indexpath.row 和 5 个 UIButtons,如果选中,它们会更改颜色并保持选中状态。
我已经设置了collectionview,以便如果请求超过30 个单元格,collectionview 将水平分页,collectionview 布局也是水平的。
该应用程序运行良好,可以正确滚动并正确布置单元格。
我遇到的问题是,当您在 collectionviewcell的单元格 1 中选择例如按钮 A(假设布局 100 个单元格)并将两页(60+ 单元格)翻页到第 3 页时,选择了单元格编号 75 中的按钮 A . 此外,如果您滚动到末尾(100 个单元格)并滚动回第 3 页,则第 75 号单元格中的按钮 A 会被选中,但第 64 号单元格中的按钮 A 会被选中。
下面是一些代码片段: cell.m - 控制用户的操作。
- (IBAction)bubbleButtons:(id)sender {
for(UIButton *bubbleCell in self.bubbleButtons) {
if (bubbleCell.touchInside && !bubbleCell.selected) {
bubbleCell.selected = YES;
} else if (bubbleCell.touchInside && bubbleCell.selected) {
bubbleCell.selected = NO;
}
}
}
MainViewContoller.m - 从情节提要中制作的 UICollectionViewCell 设置单元格
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
Cell *cell1;
cell1 =[collectionView dequeueReusableCellWithReuseIdentifier:zCellID
forIndexPath:indexPath];
cell1.numMainLabel.text = [NSString stringWithFormat:@"%d |",indexPath.row+1];
return cell1;
我真的不明白什么是错误的或导致此错误的原因,我假设它与视图的新部分变得可见时重新加载的视图有关,但这只是一个猜测。帮助将不胜感激。
- 扎克