当我使用 SnapKit 配置自动布局时,我实现了如下所示的按钮。
即使屏幕发生水平变化,frame.width 的值仍然计算为垂直时的值。
如果启动第一个应用时屏幕是水平的,frame.width 将继续计算为水平模式值。
我是否需要更新约束以反射(reflect)宽度方向的变化?
nextButton.snp.updateConstraints { (make) in
make.left.equalTo(buttonView.snp.left).offset(self.view.frame.width / 2) // <- here
}
最佳答案
看起来您需要在转换期间更新宽度约束。下面是将在布局转换(方向更改)期间调用的方法。
func viewWillTransition(to size: CGSize,
with coordinator: UIViewControllerTransitionCoordinator)
您可以覆盖此方法并使用 来更新约束。
关于swift - 翻屏时Auto-Rayout位置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57814503/