【发布时间】:2013-09-26 23:40:44
【问题描述】:
我在普通的 UIViewController 中有一个 UICollectionView。
在集合视图中,我为情节提要中的集合视图单元设计了可重用的 UI。
collectionviewcell 内部有一个标签,显示单元格 indexpath.row 和 5 个 UIButtons,如果选中,它们会改变颜色并保持选中状态。
我已经设置了collectionview,因此如果请求超过30 个单元格,collectionview 将水平分页,collectionview 布局也是水平的。
应用程序运行良好,滚动正常,单元格布局正确。
问题我遇到的问题是当您在 collectionviewcell(假设布局 100 个单元格)中选择例如 单元格 1 中的按钮 A 并在两页上翻页(60+ 单元格)到第 3 页,单元格编号 75 中的按钮 A 被选中。此外,如果您滚动到末尾(100 个单元格)并回滚到第 3 页,则第 75 号单元格中的按钮 A 会被选中,但会选择第 64 号单元格中的 按钮 A 。
这里是一些sn-ps的代码: 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;
我真的不明白什么是错误的或导致此错误的原因,我假设它与视图的新部分变得可见时重新加载的视图有关,但这只是一个猜测。非常感谢您的帮助。
- 扎克
【问题讨论】:
标签: ios objective-c uiscrollview uicollectionview uicollectionviewcell