请参阅以下代码。当在动画中“更改”帧时,它将更改为实际单元格的坐标系,而不是整个视图的坐标。所以(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) { }];
答案 0 :(得分:1)
这会对你有帮助,
CGRect theFrame = CGRectMake(0, 0, myFullView.frame.size.width, myFullView.frame.size.height);
CGRect frameInSelfView = [self.view convertRect:theFrame fromView:cell];