我使用以下代码
以编程方式创建了一个UIButton并使其水平居中 button.center = CGPointMake(self.view.center.x, 50);
当设备旋转时,它不再位于中心。我该如何解决这个问题?提前谢谢。
答案 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:
将提供更平滑的过渡,因为它是从旋转的动画块中调用的。