我有一个非常奇怪的问题。我试图像这样手动旋转和移动 UIView 的超级视图viewDidAppear
:
- (void)viewWillAppear:(BOOL)animated
{
// ...
[self.view.superview setTransform:CGAffineTransformMakeRotation(M_PI/2)];
[self.view.superview setCenter:CGPointMake(100, 200)]; // (100, 200) is toy value
// ...
}
由于某种原因,旋转被正确应用,但超级视图的中心(即位置)根本没有移动。我还尝试将变换设置为CGAffineTransform
旋转+平移(或仅平移)的组合,并且也不会移动超级视图。
如果它有所作为,self.view.superview
是最顶层的视图(即self.view.superview.superview
is nil
)。
我在这里错过了一些非常简单的东西吗?
编辑:nielsbot 的评论是正确的,因为将它放入 viewDidLoad 是有效的,但是到那时,视图已经出现,所以它会闪烁到新位置。有没有解决的办法?