我使用下面的代码更改我的视图中心:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[self setUpViewForOrientation:toInterfaceOrientation];
}
-(void)setUpViewForOrientation:(UIInterfaceOrientation)orientation
{
if(UIInterfaceOrientationIsLandscape(orientation))
{
self.imagesView.center = CGPointMake(40, 40);
[self.imagesView setBackgroundColor:[UIColor grayColor]];
}
else
{
}
}
但uiview的颜色已更改但位置不是,可能会出现什么问题?
答案 0 :(得分:0)
使用setUpViewForOrientation
方法拨打willAnimateRotationToInterfaceOrientation:duration:
,而不是willRotateToInterfaceOrientation:
:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
[self setUpViewForOrientation:toInterfaceOrientation];
}
如文档中所述:
调用此方法时,将调用interfaceOrientation属性 已经设置为新方向,并且视图的边界具有 被改变了。因此,您可以执行所需的任何其他布局 你对这种方法的看法。
漂亮的副作用"使用此方法的方法是在旋转期间对布局更改进行动画处理。