swift - 转动屏幕时自动布局位置问题
问题描述
当我使用 SnapKit 配置自动布局时,我实现了如下所示的按钮。
即使屏幕水平发生了变化,frame.width 的值仍然计算为垂直时的值。
如果第一个应用程序启动时屏幕是水平的,frame.width 将继续计算为水平模式值。
我是否需要更新约束以反映更改的宽度方向?
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)
您可以覆盖此方法并使用 更新约束。
推荐阅读
- android - 启用App修改Android系统的Dark/Night Mode设置
- installation - zsh:找不到命令:ember
- sql - Laravel ajax 在追加中使用 if 条件
- python - 使用 Django 后端和 React 前端进行用户身份验证的最佳方法?
- javascript - JavaScript:查找浮点值所在的数组定义范围
- javascript - 如何在舞台或容器上实现撤消/重新执行操作
- office-js - 如何在菜单栏上更改我的加载项/任务窗格的徽标
- css - CSS grid make last column smaller
- r - 在 R 中使用因果包
- cookies - 无法让 axios 在跨域请求中包含来自 cookie 的 CSRF 令牌