我是一个正在开发iOS应用程序的noob,我现在正在合作。
我已经使用HomeViewController
(主要)设置了我的故事板,并在其中设置了一个容器视图,其中嵌入了另一个视图控制器。这个子视图控制器超出了视图的范围,当我单击HomeViewController中的一个按钮时,它会动画到我的应用程序的顶部,显示这个孩子有一个很酷的动画。一切都是对的。
在我的子视图控制器中,我只有3个按钮,当它们以这个小动画显示在屏幕上时,它们不可用。它们不会触发按下按钮的动作,也不会以iOS风格“突出显示”。没有任何事情发生。
我一直在搜索这个问题,我在父亲身上尝试了addChildViewController()
,在孩子身上didMove(toParentViewController: UIViewController)
,我也以编程方式添加了它。以编程方式添加时,它可以正常工作,但视图不尊重动画,只是在屏幕上显示而不跟随父级容器,而容器确实与动画一起移动。
接下来我该怎么做?
非常感谢
编辑:我的问题似乎与UIView animations canceling any touch input
不重复我正在使用Spring库来制作动画。此外,在该线程中,他们谈论的是在动画未完成时被阻止的用户交互。那不是我的情况。尝试按钮交互时,动画完美无缺。
答案 0 :(得分:4)
根据我的经验,有两个问题最常引起这种行为:
userInteractionEnabled
设置为false
或使用Xcode Debug View Hierarchy可以最好地调试这两个,或者您也可以尝试使用Reveal应用程序看看那里发生了什么。
答案 1 :(得分:0)
最后,这种不当行为是因为我的容器中的包装视图比容器小,但由于这两个在屏幕之外,我起初并没有意识到。使包装视图足够大以适合子容器是解决方案。
很抱歉,因为最后这是一个愚蠢的问题。
谢谢大家
答案 2 :(得分:0)
如果使用自动布局。您可以检查您的约束条件是否正确。特别是对于bigOrEqual和smallerOrEqual约束仍然需要具体的约束。例如:
宽度= 100 @ 750
width <= superView.width@999
您不应忘记第一个批评者。