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

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

概述将我的项目升级到iOS 6后,我意识到自动布局仅在viewDidAppear中有效,并且我的代码大部分期望视图的框架在viewDidLoad中可用.这个限制使得真正好的汽车布局功能对我来说几乎没用.有没有什么建议来帮助我使用自动布局? 例如,有时开发人员需要根据自动布局选择放置该子视图的位置来调整子视图的信息.在用户已经看到子视图的最终位置之前,开发者无法确定.用户不应该看到这些信息调整,而是一次 将我的项目升级到iOS 6后,我意识到自动布局仅在vIEwDIDAppear中有效,并且我的代码大部分期望视图的框架在vIEwDIDLoad中可用.这个限制使得真正好的汽车布局功能对我来说几乎没用.有没有什么建议来帮助我使用自动布局? @H_502_2@例如,有时开发人员需要根据自动布局选择放置该子视图的位置来调整子视图的信息.在用户已经看到子视图的最终位置之前,开发者无法确定.用户不应该看到这些信息调整,而是一次性显示最终结果.

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

解决方法 作为一般规则,vIEwDIDLoad中不应该依赖视图框架/边界. @H_502_2@一旦视图以编程方式或通过.nib / .xib文件创建,vIEwDIDLoad方法才会被调用.此时,视图尚未设置,只能加载到内存中.

@H_502_2@您应该始终在vIEwWillAppear或vIEwDIDAppear中执行视图布局,因为这些方法在视图准备进行演示之后被调用.

@H_502_2@作为测试,如果您只是NSLog(@“frame:%@”,NsstringFromCGRect(self.vIEw.frame));在vIEwDIDLoad和vIEwWillAppear方法中,您将看到,只有后一种方法才能返回实际的视图大小,这些尺寸与包含在视图中的任何其他元素(如UINavigationbar和UITabbar)相关.

总结

以上是内存溢出为你收集整理的objective-c – Xcode的自动布局仅在viewDidAppear中有效,这是非常有问题的全部内容,希望文章能够帮你解决objective-c – Xcode的自动布局仅在viewDidAppear中有效,这是非常有问题的所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1250414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存