在为应用了旋转变换的 UIView 执行以下代码时,我遇到了一个奇怪的问题。我要做的是从超级视图中删除视图,然后将其插入特定视图下并恢复其框架:
UIView* movedView= [self.views objectAtIndex:newIndex];
center = movedView.center;
CGRect oldFrame = movedView.frame;
//find the layer on top and insert the moved view under that
UIView* coveringView = [self.views objectAtIndex:newIndex-1];
[movedView removeFromSuperview];
[self.view insertSubview:movedView belowSubview:coveringView];
movedView.frame = oldFrame;
我希望在操作后视图会出现在同一个地方,但它会根据通过 CGAffineTransformMakeRotation() 应用的旋转量来移动。
通过将分配框架的调用替换为分配中心属性的调用,我得到了所需的行为。这让我开始思考——我如何理解 UIView 的框架在旋转时发生了什么?有没有好的教程或可以帮助我从概念上理解变换如何影响 UIView 框架的东西?