美文网首页
关于CollectionView设置默认选中某一行的方法

关于CollectionView设置默认选中某一行的方法

作者: 堇之 | 来源:发表于2018-08-05 23:27 被阅读0次

            关于设置CollectionView默认选中某一行,我相信很有朋友,特别是新手都会遇到一个问题,为什么不是和tableview一样,直接设置selectItemAtIndexPath就可以了?所以,在这里,我要跟大家分享如何设置CollectionView默认选中某一行(如果还有更好的方法,请告知一下,有错,也可以指出来)。

            其实,和tableView一样,也是要使用到代理方法selectItemAtIndexPath,来设置选中某一个cell。如下代码:

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];          [self.collectionView selectItemAtIndexPath:indexPath animated:YES scrollPosition:UICollectionViewScrollPositionNone];

            不一样的是,这段代码并没有执行指定的cell里面的代码,所以会让大家觉得这段代码无效,其实不是的,这段代码其实已经标志了该cell被选中了,但至于选中时候字体加粗,或者字体颜色等设置,是要另外设置的。可以有两种方式:一、直接利用indexPath来获取cell,并进行选中状态的设置。二、刷新相应的cell,但前提是有做了一定的判断,使得刷新会设置选中状态。

            然后再设置好didSelectItemAtIndexPath以及didDeselectItemAtIndexPath中,选中状态cell,和非选中状态的cell,就会发现,默认可以了,也可以切换了。

            但是,仅仅以上的设置,可能会出现一个问题,滚动复用的时候,有选中状态也复用了,变成了有几个都有选中状态了,怎么办?这就要避免掉复用时候的选中状态了。通常我是会做一个标记,标记选中的cell,在collectionView:cellForItemAtIndexPath:里面做好相应的逻辑判断,这样一来,复用问题也解决了。大功告成

            以上,就是我关于CollectionView默认选中某一行的方法。有疑问,欢迎留言。如果对您有帮助,点个赞,谢谢

    相关文章

      网友评论

          本文标题:关于CollectionView设置默认选中某一行的方法

          本文链接:https://www.haomeiwen.com/subject/ynfnuftx.html