微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 在首次加载UICollectionView后如何选择某些项目?

我试着写

[self collectionView:myCollectionView didSelectItemAtIndexPath:selectedindexPath]

并且在ViewDidLoad中选择了UICollectionViewCell = YES,并且它确实实现了方法didSelectItemAtIndexPath,但是未选择该单元格.

我在UICollectionViewCell子类的(void)setSelected:(BOOL)中选择了所选状态.视图加载后,手动选择功能有效.但是我不能让它在视图的第一次加载之后自动选择一些项目.

我试图写代码

– (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

– (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath,一切都不行.

我发现它首先运行viewDidLoad和didSelectItemAtIndexPath,然后是cellForItemAtIndexPath,似乎我不能在cellPath(我知道)之前获取单元格在cellForItemAtIndexPath之前,因为之前的单元格不存在.那么在首次加载UICollectionView后如何选择一些项目?

对不起我可怜的英语提前致谢.

解决方法

不确定,如果您的问题正确,但这是一个可能的解决方案:

在例如viewWillAppear:做

[self.collectionView reloadData];
NSIndexPath *selection = [NSIndexPath indexPathForItem:THE_ITEM_TO_SELECT 
                                             inSection:THE_SECTION];
[self.collectionView selectItemAtIndexPath:selection 
                                  animated:YES 
                            scrollPosition:UICollectionViewScrollPositionNone];

记住,以编程方式调用“selectItemAtIndexPath”不调用相关的委托方法;如果需要,您必须在代码调用它们.

原文地址:https://www.jb51.cc/iOS/329694.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐