【发布时间】:2013-10-09 16:46:01
【问题描述】:
当用户选择一个 collectionView 单元格时,我会为该单元格的框架设置动画以使其增长和重新定位,使其具有以下大小/位置:
CGRectMake(114, 148, 540, 620)
如果我没有向下滚动到 collectionView 中的其他单元格,这会很好。当我在较低的单元格上尝试此操作时,它仍然会动画,但单元格会向上射击,因此 collectionView 的 y 坐标可以为 148。
我已经尝试过 convertRect 和 convertPoint 的各种变体,但我无法概念化正确的解决方案。
我需要怎么做才能将选定单元格的 y 值转换为在超级视图的坐标系中移动到相当于 148 的值?
编辑:减少混淆
我点击collectionView底部的一个单元格(意味着我向下滚动几行),这是原点:
(x=394.5, y=4114)
这里的 x 很好,但我的 y 有问题。我想为我刚刚选择的这个单元格设置动画,使其看起来好像它的 y 坐标位于外部视图的 148 处。就像表单模式视图控制器一样。但是将该原点设置为 148 会导致单元格飞到 collectionView 的顶部,因为它一直在 4114 处下降。我怎样才能获得对用户来说看起来像 148 的正确 y 值,但实际上会是什么更接近细胞的原点?
编辑 2:图片
【问题讨论】:
-
你在哪里设置框架单元格?
-
“didSelectItemAtIndexPath”内部
-
并且每次滚动时都会调用 didSelectItemAtIndexPath?
-
是的,但是由于 collectionView 已经滚动,单元格的 y 坐标就像 4300。设置为 148 会导致它一直到顶部。
标签: iphone ios animation frame uicollectionview