请参见下面的代码。当动画中的帧“更改”时,它将更改为实际单元的坐标系,而不是整个视图的坐标。因此(0,0)是单元格的原点,而不是整个视图。该单元格位于屏幕的中间(GMGridView的一部分)。
我要完成的工作:
我需要获取整个视图中单元格的绝对位置,然后从那里对也在整个视图的坐标系中进行帧变化(使用翻转的大小)进行动画处理。然后更改回该单元格的“旧”绝对框架(按按钮)。我通过按钮和代表处理的逻辑工作正常。唯一不起作用的是框架。
有任何想法吗?
我试图获取绝对的frameInMainWindow,但无法正确显示。并尝试与clipToBounds玩没有运气。一堆其他东西没有帮助。
外面有人对如何实现上述目标有想法吗?
任何帮助将不胜感激。
cell.contentView.contentMode = UIViewContentModeRedraw;
[UIView transitionWithView:cell.contentView duration:2
options:UIViewAnimationOptionTransitionFlipFromRight
animations: ^{
cell.contentView.frame = CGRectMake(0,
0,
myFullView.frame.size.width,
myFullView.frame.size.height);
[cell.contentView addSubview:myFullView];
[gmGridView bringSubviewToFront:cell];}
completion: ^(BOOL finished) { }];
最佳答案
这对您有帮助,
CGRect theFrame = CGRectMake(0, 0, myFullView.frame.size.width, myFullView.frame.size.height);
CGRect frameInSelfView = [self.view convertRect:theFrame fromView:cell];
关于ios - iOS UIView动画changeFrame错误的坐标系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16492505/