gpt4 book ai didi

swift - 自动布局 [Snapkit] 更改旋转约束

转载 作者:行者123 更新时间:2023-11-30 12:08:43 27 4
gpt4 key购买 nike

我构建了一个应用程序,它不使用任何界面生成器,而是使用 Snapkit 创建自动布局约束。纵向时一切看起来都很好,但是一些屏幕需要一些特定于横向的限制。

我在这里和谷歌上搜索了关于执行此操作的快速介绍,但找不到任何适用的内容(我发现的所有内容都是基于使用 IB 或使用尺寸类别而不是方向 - 我特别想要景观,而不是紧凑与常规)。

所以,目前我所有的自动布局约束都是在 viewDidLoad 中设置的。毫无疑问,至少,那些依赖于方向的需要转移到 UIViewController 上的某种委托(delegate)/回调方法,但我不知道那是什么......

  1. 如何检测方向变化以更改约束?
  2. 如何获取当前方向(因此,当我第一次加载 View Controller 时,我可以设置正确的约束...或者我上面问题中的函数是否总是为每个加载的 VC 至少调用一次?)<
  3. 在 ViewController 之外,例如自定义 UIView,如何检测方向变化?我应该发送自定义通知事件吗?我不想让我的 UIViewController 告诉每个 subview 它的方向已经改变。

感谢您的帮助:)

最佳答案

我个人会使用这个功能:

    override func viewWillTransitionToSize(size: CGSize, 
withTransitionCoordinator coordinator:
UIViewControllerTransitionCoordinator) {}

然后,当检测到这些更改时,调用 setNeedsLayoutlayoutIfNeeded ,这应该会触发所有 subview 的重绘,然后可以处理特定方向的设置约束

关于swift - 自动布局 [Snapkit] 更改旋转约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46346784/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com