gpt4 book ai didi

objective-c - Xcode 的自动布局仅在 viewDidAppear 中有效,这是非常有问题的

转载 作者:技术小花猫 更新时间:2023-10-29 11:05:02 26 4
gpt4 key购买 nike

将我的项目升级到 iOS 6 后,我意识到自动布局仅在 viewDidAppear 中有效,并且我的大部分代码都希望 View 的框架在 viewDidLoad 中可用。这个限制使非常好的自动布局功能对我来说几乎毫无用处。有什么建议可以帮助我使用自动布局吗?

例如,有时开发人员需要根据自动布局选择放置特定 subview 的位置来调整有关 subview 的信息。在用户已经看到 subview 之前,开发人员无法确定它的最终位置。用户不应看到这些信息调整,而是一次性呈现最终结果。

更具体地说:如果我想根据自动布局放置 View 的位置更改 View 中的图像怎么办?我无法查询该位置,然后在没有用户看到的情况下更改图像。

最佳答案

作为一般规则,在 viewDidLoad 中永远不应依赖 View 框架/边界。

只有在以编程方式或通过 .nib/.xib 文件创建 View 后,才会调用 viewDidLoad 方法。此时, View 还没有设置,只是加载到内存中。

您应该始终viewWillAppearviewDidAppear 中进行 View 布局,因为一旦 View 准备好呈现,就会调用这些方法。

作为测试,如果您只是在 viewDidLoadviewWillAppear 方法,您会看到只有后一种方法返回实际 View 大小与围绕 View 的任何其他元素(例如 UINavigationBarUITabBar).

关于objective-c - Xcode 的自动布局仅在 viewDidAppear 中有效,这是非常有问题的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13179462/

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