当用户选择一个collectionView单元格时,我会为该单元格的框架设置动画以进行增长和重新定位,以便它坐在这个大小/位置:
CGRectMake(114, 148, 540, 620)
如果我没有向下滚动到collectionView中的其他单元格,这很有效。当我在较低的单元格上尝试此操作时,它仍然会动画,但是单元格会向上拍摄,因此对于collectionView,它的y坐标可以为148。
我尝试了各种convertRect和convertPoint的变体,但我无法概念化正确的解决方案。
我需要做什么才能将所选单元格的y值转换为superview坐标系中相当于148的值?
编辑:减少混淆
我点击了我的collectionView底部的一个单元格(意思是我向下滚动了几行),这就是原点:
(x=394.5, y=4114)
这里的x很好,但我对y有问题。我想为我刚刚选择的单元格设置动画,使其看起来好像它的y坐标位于外部视图的148处。就像表单模态视图控制器一样。但是将该原点设置为148会导致单元格飞到collectionView的顶部,因为它在4114处一直向下。如何向用户获取看起来像148的正确y值,但实际上将是更接近细胞的原始来源?
编辑2:PIC
答案 0 :(得分:2)
如果我理解你想做什么,那么解决方案很简单:你的单元格的“y”位置应该是self.collectionView.contentOffset.y + 148
。
CGRectMake(114, self.collectionView.contentOffset.y + 148, 540, 620);
这适用于任何给定的滚动值。
希望这有帮助!