我有一个很奇怪的问题。我试图旋转和viewDidAppear
手动移动一个UIView的上海华像这样:通过设置其中心属性来移动UIView的超级视图
- (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
是nil
)。
我在这里错过了很简单的东西吗?
编辑:nielsbot的评论是正确的,把它放在viewDidLoad工作,但到那时,视图已经出现,所以有一个闪烁的地方,它捕捉到新的位置。有没有解决的办法?
在'viewDidAppear'中尝试它 - 您的代码表示'viewWillAppear'。在*出现*之后,可能会运行一些布局代码并撤消更改。 – nielsbot
首先,通过“旋转正确应用但超视图完全不移动”来说清楚你想说的是什么? – Nayan
@nielsbot工作,但有一个闪烁,因为它首先显示视图,然后在那里移动它。有没有办法避免这种情况? – kevlar