iOS UIView动画changeFrame错误的坐标系

时间:2013-05-11 00:18:30

标签: ios frame uiviewanimation gmgridview

请参阅以下代码。当在动画中“更改”帧时,它将更改为实际单元格的坐标系,而不是整个视图的坐标。所以(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) { }];

1 个答案:

答案 0 :(得分:1)

这会对你有帮助,

CGRect theFrame = CGRectMake(0, 0, myFullView.frame.size.width, myFullView.frame.size.height);
CGRect frameInSelfView = [self.view convertRect:theFrame fromView:cell];