如何在iOS中旋转设备后居中UIButton

时间:2013-07-28 00:22:42

标签: ios objective-c centering

我使用以下代码

以编程方式创建了一个UIButton并使其水平居中
    button.center = CGPointMake(self.view.center.x, 50);

当设备旋转时,它不再位于中心。我该如何解决这个问题?提前谢谢。

2 个答案:

答案 0 :(得分:1)

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    button.center = CGPointMake(self.view.center.x, 50);
}

答案 1 :(得分:1)

Kevin是正确的,但更好的解决方案是在视图控制器的willAnimateRotationToInterfaceOrientation:duration:方法中设置按钮的中心。

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
    button.center = CGPointMake(self.view.center.x, 50);
}

他使用didRotateFromInterfaceOrientation:fromInterfaceOrientation方法,正如Apple文档所述“此方法可用于重新启用视图交互,再次启动媒体播放,或打开昂贵的绘图或实时更新。

在布置子视图的情况下,willAnimateRotationToInterfaceOrientation:duration:将提供更平滑的过渡,因为它是从旋转的动画块中调用的。