gpt4 book ai didi

ios - iOS 设备旋转时如何处理 View 交换

转载 作者:行者123 更新时间:2023-11-29 04:47:19 25 4
gpt4 key购买 nike

因此,我按照以下教程创建与设备方向相关的自定义 View :

http://www.theappcodeblog.com/2011/03/30/orientation-change-tutorial-change-the-view-when-the-orientation-changes/

总而言之,作者能够在检测到设备旋转时指向 XIB 文件中的新顶级 View ,从而生成横向和纵向的自定义 View 。

因此,我采用了复杂的 View 层次结构(许多按钮、 slider 、 View 中的 View ),复制了顶层的所有内容来创建横向 View 。然后为横向 View 创建自定义布置。在我的代码检测横向方向的方法中,我的代码在检测纵向时指向横向层次结构和纵向的顶部。

除了横向层次结构中的所有 IBOutlet(UIView、UIButton 等)仍然引用纵向 View 层次结构中的等效对象之外,此方法有效。我在运行时对这些 UI 元素进行了很多特殊处理,因此我需要 IBOutlet 而不仅仅是 IBActions。我发现我在横向 View 中复制的 UI 元素可以指向相同的 IBActions,但它们不能与纵向层次结构中的元素共享 IBOutlet。

我是否必须复制所有对象并让我的代码管理所有内容(找出要使用哪些对象)?

最佳答案

这是一种可能适合您的方法。

如果您在需要交换横向 View 时加载横向nib,则可以将 View Controller 作为nib文件的所有者传递,nib加载器将根据中的连接覆盖 View Controller 的 socket 风景 Nib 。

当您需要再次交换纵向 View 时,加载纵向 Nib 并将 View Controller 作为文件所有者传递。 Nib 加载器将再次覆盖 View Controller 的 socket ,这次基于纵向 Nib 中的连接。

您应该在第一次需要 Nib 时为每个 Nib 创建一个 UINib 对象,并保留它们以加快后续旋转的加载速度。

关于ios - iOS 设备旋转时如何处理 View 交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426318/

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