首页 > 解决方案 > 转动屏幕时自动布局位置问题

问题描述

当我使用 SnapKit 配置自动布局时,我实现了如下所示的按钮。

即使屏幕水平发生了变化,frame.width 的值仍然计算为垂直时的值。

如果第一个应用程序启动时屏幕是水平的,frame.width 将继续计算为水平模式值。

我是否需要更新约束以反映更改的宽度方向?

nextButton.snp.updateConstraints { (make) in
    make.left.equalTo(buttonView.snp.left).offset(self.view.frame.width / 2) // <- here
}

标签: swiftrotationios-autolayoutsnapkit

解决方案


看起来您需要在过渡期间更新宽度约束。以下是在布局过渡(方向更改)期间将调用的方法。

func viewWillTransition(to size: CGSize, 
                   with coordinator: UIViewControllerTransitionCoordinator)

您可以覆盖此方法并使用 更新约束。


推荐阅读