更新单元格视图时,重用单元格会导致不良行为

叶夫根尼

我想为选定的单元格设置边框,我保存了代表选定单元格的单元格属性并对其进行操作:

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
    NSArray *eyeArray = [self eyesArrayConfigure][indexPath.row];
    if (indexPath.row==5) {
        int r = arc4random() % 6;
        eyeArray = [self eyesArrayConfigure][r];
    }
    [borderedCell.contentView.layer  setBorderWidth:0.0f] ;

    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
    borderedCell = cell;
    [borderedCell.contentView.layer setBorderColor:self.view.tintColor.CGColor];
    [borderedCell.contentView.layer setBorderWidth:3.0f];

}

和cellForView :(我使用了两种类型的单元格标识符,因为一个单元格包含标签-“随机单元格”:

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row ==5) {
        UICollectionViewCell *randomCell =[collectionView
                                           dequeueReusableCellWithReuseIdentifier:@"randomCell"
                                           forIndexPath:indexPath];
        randomCell.backgroundColor = [UIColor purpleColor];
        borderedCell = randomCell;
        [borderedCell.contentView.layer setBorderColor:self.view.tintColor.CGColor];
        [borderedCell.contentView.layer setBorderWidth:3.0f];

        return randomCell;
    }
    UICollectionViewCell *myCell = [collectionView  dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];


    NSArray *eyeArray = [self eyesArrayConfigure][indexPath.row];

    myCell.backgroundView = [[UIImageView alloc] initWithImage:eyeArray[1]];


    return myCell;
}

我得到的是,如果单击一个单元格,它将一直很好,直到我滚动,然后当几个单元格可能带有边框时,我得到了怪异的行为。

谢谢您的帮助。

深红克里斯

解决方案是使用视图模型。您已经在为单元格的背景视图执行此操作。对边框应用相同的概念。

@interface MyCollectionView ()
@property (nonatomic) NSInteger selectedRow;
@end    

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
    //update self.selectedRow and either reload entire collection view or just the currently selected and previously selected.
    self.selectedRow = indexPath.row;
    [collectionView reloadData];
}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell *myCell = [collectionView  dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
    CGFloat borderWidth = (indexPath.row == self.selectedRow) ? 3.0 : 0.0;
    [myCell.contentView.layer setBorderWidth:borderWidth];
    return myCell;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用“显示:表格单元格”的不良边框行为

来自分类Dev

选中时更新单元格

来自分类Dev

表视图按单元格排列的单元格

来自分类Dev

iOS集合视图单元格:在重用期间是否有强大的参考/防止单元格重用?

来自分类Dev

iOS集合视图单元格:在重用期间具有强引用/防止单元格重用?

来自分类Dev

我的表格视图在滚动时重用选定的单元格-在SWIFT中

来自分类Dev

动态将子视图添加到单元格会导致布局约束错误输出

来自分类Dev

翻转UICollectionViewCell会导致其他单元格翻转

来自分类Dev

更改任何单元格名称时,顶部单元格名称也会更改

来自分类Dev

如何重用UITableView中的单元格?

来自分类Dev

UICollectionView不重用单元格

来自分类Dev

UICollectionView重用单元格问题

来自分类Dev

UICollectionView而不重用单元格

来自分类Dev

iOS重用表单元格设计

来自分类Dev

如何阻止UITableView重用单元格?

来自分类Dev

UICollectionView不重用单元格

来自分类Dev

iOS重用表单元格设计

来自分类Dev

在 UITableView 中重用单元格

来自分类Dev

UITableView 删除单元格重用问题

来自分类Dev

当我点击表格视图中的任何单元格时,单元格未替换

来自分类Dev

为什么在添加单元格时表格视图中的单元格会调整大小?

来自分类Dev

当我点击表格视图中的任何单元格时,单元格未替换

来自分类Dev

合并单元格时找不到单元格

来自分类Dev

UITableViewController更改一个可重用单元格会影响其他单元格

来自分类Dev

使用嵌套表格单元格时的怪异行为

来自分类Dev

在iOS 8上选择时,表格视图单元格会跳转

来自分类Dev

如何在容器视图中更新单元格

来自分类Dev

表格视图单元格不显示更新的数据

来自分类Dev

尝试更新GridView单元格中的文本时出现奇怪的行为

Related 相关文章

  1. 1

    使用“显示:表格单元格”的不良边框行为

  2. 2

    选中时更新单元格

  3. 3

    表视图按单元格排列的单元格

  4. 4

    iOS集合视图单元格:在重用期间是否有强大的参考/防止单元格重用?

  5. 5

    iOS集合视图单元格:在重用期间具有强引用/防止单元格重用?

  6. 6

    我的表格视图在滚动时重用选定的单元格-在SWIFT中

  7. 7

    动态将子视图添加到单元格会导致布局约束错误输出

  8. 8

    翻转UICollectionViewCell会导致其他单元格翻转

  9. 9

    更改任何单元格名称时,顶部单元格名称也会更改

  10. 10

    如何重用UITableView中的单元格?

  11. 11

    UICollectionView不重用单元格

  12. 12

    UICollectionView重用单元格问题

  13. 13

    UICollectionView而不重用单元格

  14. 14

    iOS重用表单元格设计

  15. 15

    如何阻止UITableView重用单元格?

  16. 16

    UICollectionView不重用单元格

  17. 17

    iOS重用表单元格设计

  18. 18

    在 UITableView 中重用单元格

  19. 19

    UITableView 删除单元格重用问题

  20. 20

    当我点击表格视图中的任何单元格时,单元格未替换

  21. 21

    为什么在添加单元格时表格视图中的单元格会调整大小?

  22. 22

    当我点击表格视图中的任何单元格时,单元格未替换

  23. 23

    合并单元格时找不到单元格

  24. 24

    UITableViewController更改一个可重用单元格会影响其他单元格

  25. 25

    使用嵌套表格单元格时的怪异行为

  26. 26

    在iOS 8上选择时,表格视图单元格会跳转

  27. 27

    如何在容器视图中更新单元格

  28. 28

    表格视图单元格不显示更新的数据

  29. 29

    尝试更新GridView单元格中的文本时出现奇怪的行为

热门标签

归档