gpt4 book ai didi

ios - 呈现 View Controller 后自动布局无效(以及许多情况)

转载 作者:IT王子 更新时间:2023-10-29 07:47:27 24 4
gpt4 key购买 nike

<分区>

背景:

我有一个自定义容器 Controller ,它就像 UITabBarController,但带有切换动画。而我是用auto layout来实现的。
因为子 Controller 之间的切换是动态的,所以当它的 View 被添加到容器的 View 中时,适当的约束被添加到 subview Controller ,而不是在 IB 中预先设置。 (约束当然是添加到父 View 中的)

http://d.pr/i/q6NF容器 Controller Nib 设置

附言:约束的细节
H:|[Child](将约束的常量从左/右改为右/左动画)
H:[ child (== super )]
五:|[ child ]|

问题出在哪里:

其中一个子 Controller 是导航 Controller ,当导航 Controller 呈现模态视图 Controller (使用 presentViewController:animated:completion:)并关闭它(使用 dismissViewControllerAnimated:completion:), 在 present/dismiss navigation controller frame 变成 (x, y, 0, 0) 之后,似乎自动布局变得无效,可能是约束被移除了。

http://d.pr/i/VmvL出席/解雇流程

研究

我还没有使用代码来验证这些约束发生了什么,但是通过 Spark Inspector,我看到在呈现/关闭过程中 View 呈现发生了变化。当我的导航 Controller 呈现模态视图 Controller 时,iOS 只是将整个导航 Controller 的 View 交换到模态视图 Controller 的 View 。当导航 Controller 的 View 返回时,自动布局不再起作用。

可能的解决方案

我想到的解决方案之一是让我的容器 Controller 呈现模态 Controller 。

或者我只是将我的容器 Controller 更改为无自动布局。

事实上,自从我开始使用自动布局以来,这种技术造成的问题就占了优势。 除了这个问题,每次界面方向改变时,我的容器 Controller 内的 View 就不能正确自动布局,似乎 subview 总是在方向改变之前使用父 View 的框架。我仔细检查了我设置的约束,没有冲突也没有歧义。

我的猜测是我的自定义容器 Controller 与在自动布局系统中呈现模态视图 Controller 和界面方向更改不兼容,即使设置了约束也是如此。

Xcode 环境

Xcode 5 beta,iOS 7SDK,目标 iOS6.1可能是 SDK 环境不对?

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