容器视图中的按钮不起作用

时间:2018-03-06 15:37:12

标签: ios swift xcode

我是一个正在开发iOS应用程序的noob,我现在正在合作。

我已经使用HomeViewController(主要)设置了我的故事板,并在其中设置了一个容器视图,其中嵌入了另一个视图控制器。这个子视图控制器超出了视图的范围,当我单击HomeViewController中的一个按钮时,它会动画到我的应用程序的顶部,显示这个孩子有一个很酷的动画。一切都是对的。

在我的子视图控制器中,我只有3个按钮,当它们以这个小动画显示在屏幕上时,它们不可用。它们不会触发按下按钮的动作,也不会以iOS风格“突出显示”。没有任何事情发生。

我一直在搜索这个问题,我在父亲身上尝试了addChildViewController(),在孩子身上didMove(toParentViewController: UIViewController),我也以编程方式添加了它。以编程方式添加时,它可以正常工作,但视图不尊重动画,只是在屏幕上显示而不跟随父级容器,而容器确实与动画一起移动。

接下来我该怎么做?

非常感谢

编辑:我的问题似乎与UIView animations canceling any touch input

不重复

我正在使用Spring库来制作动画。此外,在该线程中,他们谈论的是在动画未完成时被阻止的用户交互。那不是我的情况。尝试按钮交互时,动画完美无缺。

3 个答案:

答案 0 :(得分:4)

根据我的经验,有两个问题最常引起这种行为:

  1. 您的部分容器视图userInteractionEnabled设置为false
  2. 您的容器视图框很小,并且您试图点击容器框架外的按钮,该按钮将无法工作。把它看作是按钮的窗口,并且有一个看不见的墙壁阻挡了触摸。
  3. 使用Xcode Debug View Hierarchy可以最好地调试这两个,或者您也可以尝试使用Reveal应用程序看看那里发生了什么。

答案 1 :(得分:0)

最后,这种不当行为是因为我的容器中的包装视图比容器小,但由于这两个在屏幕之外,我起初并没有意识到。使包装视图足够大以适合子容器是解决方案。

很抱歉,因为最后这是一个愚蠢的问题。

谢谢大家

答案 2 :(得分:0)

如果使用自动布局。您可以检查您的约束条件是否正确。特别是对于bigOrEqual和smallerOrEqual约束仍然需要具体的约束。例如:

宽度= 100 @ 750

width <= superView.width@999

您不应忘记第一个批评者。