请参见下面的代码。当动画中的帧“更改”时,它将更改为实际单元的坐标系,而不是整个视图的坐标。因此(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/

10-10 21:04