我设计了一个使用自动布局的应用程序,所有功能都完美运行,问题是,当我切换到横向时,我希望一个按钮的位置移动到屏幕的另一侧。
我假设最好的方法是在旋转屏幕时更改约束,这在代码中是否可能,甚至是最好的方法?显然,如果应用程序以横向模式启动,我显然希望此按钮也处于横向模式。
谢谢
最佳答案
绝对是的。根据需要在 View Controller 的 updateViewConstraints
实现中删除和添加约束。
您会发现提前准备两组备用约束并将它们维护在实例变量中是最简单的。然后你就可以将它们换入和换出。下面是代码的草图:
-(void)updateViewConstraints {
[self.view removeConstraints:self.oneSideConstraints];
[self.view removeConstraints:self.otherSideConstraints];
if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
[self.view addConstraints:self.oneSideConstraints];
else
[self.view addConstraints:self.otherSideConstraints];
[super updateViewConstraints];
}
关于Xcode 根据屏幕方向更改约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21501672/