当用户选择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:PIC
最佳答案
如果我正确理解了您要做什么,那么解决方案很简单:单元格的“ y”位置应为self.collectionView.contentOffset.y + 148
。
CGRectMake(114, self.collectionView.contentOffset.y + 148, 540, 620);
这将适用于任何给定的滚动值。
希望这可以帮助!