博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scrollToItemAtIndexPath: atScrollPosition: animated:
阅读量:6897 次
发布时间:2019-06-27

本文共 1706 字,大约阅读时间需要 5 分钟。

oh my god

今天死在scrollToItemAtIndexPath: atScrollPosition: animated:方法上面,scrollPosition这个参数控制cell具体停留在上下左右中到底哪个位置,看了API有7个枚举值

UICollectionViewScrollPositionNone                 = 0,    // The vertical positions are mutually exclusive to each other, but are bitwise or-able with the horizontal scroll positions.// Combining positions from the same grouping (horizontal or vertical) will result in an NSInvalidArgumentException.    UICollectionViewScrollPositionTop                  = 1 << 0,    UICollectionViewScrollPositionCenteredVertically   = 1 << 1,    UICollectionViewScrollPositionBottom               = 1 << 2,    // Likewise, the horizontal positions are mutually exclusive to each other.    UICollectionViewScrollPositionLeft                 = 1 << 3,    UICollectionViewScrollPositionCenteredHorizontally = 1 << 4,    UICollectionViewScrollPositionRight                = 1 << 5

之前没有去理解过它几个参数的意思,要实现在二级界面通过indexPath获取到一级界面的collectionView的对应位置的cell

UIView *sourceCell = [_sourceView cellForItemAtIndexPath:indexPath];if (!sourceCell) {    [_sourceView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];    [_sourceView layoutIfNeeded];    sourceCell = [_sourceView cellForItemAtIndexPath:indexPath];}

此时cell存在nil的情况,collectionView.visibleCells没有这个cell,需要从重用池获取,所以要滚动到这个cell位置后走layoutSubViews布局,这样才拿的到cell

在给参数时给了 UICollectionViewScrollPositionLeft  ,然后pop回去就一直没效果,用了代理 block都还是不行,以为是layoutIfNeeded的问题搞了很久。

最后 给 UICollectionViewScrollPositionCenteredVertically 这个就成了。

根据API的解释 分成水平滚动和垂直滚动

可以想象的是当collectionView水平滚动时cell的定点相对于整个collectionView的左中右位置

                                     当垂直滚动时cell的定点相对于整个collectionView的上中下位置

转载于:https://www.cnblogs.com/xs514521/p/5761831.html

你可能感兴趣的文章
h5空白页面过渡加载
查看>>
端午悲剧—我的上海情结(二)
查看>>
Ajax实现登陆并友好提示错误信息
查看>>
第1周小组博客作业——1702班1组
查看>>
思考线上如何既保证不影响查询,又能做更新操作
查看>>
python 10day--python 的基本数据类型
查看>>
HTTP无状态什么意思?
查看>>
FFmpeg简易播放器的实现-音视频同步
查看>>
洛谷p1156 垃圾陷阱(蒟蒻手把手教你用01背包把这道题复杂化)
查看>>
7.3 进制转换
查看>>
初始Ajax
查看>>
[杂记]如何在ppt里插入高亮代码
查看>>
Android中高效的显示图片之二——在非UI线程中处理图片
查看>>
PV、UV、IP之间的区别与联系
查看>>
ssh 操作 esxi 基本命令
查看>>
调用HtmlTestRunner生成测试报告为空
查看>>
最优装载(贪心)
查看>>
DAY10-MYSQL数据类型
查看>>
【学时总结】◆学时·VII◆ 高维DP
查看>>
SQL Server进制
查看>>