我有一个UIButton,我为它调用了一个touchUpInside IBAoutlet函数,它被嵌入到一个视图中,然后又被嵌入到一个stackview中。我为stackview、视图和按钮都启用了用户交互。但是,当我点击按钮时,touchUpInside函数没有被调用,有人知道这是否有解决方案吗?
mefy6pfw1#
按钮的容器视图可能缩小为较小的大小,因此它及其子视图不会接收到触摸。显示子视图是因为默认情况下所有视图的“剪切到边界”为false。因此,即使在边界之外也会绘制子视图。最简单的检查方法是为容器视图提供背景色。如果是这种情况,则有几种方法可以解决此问题:1.给容器设置一个合理的约束。例如,坚持最近的相邻边界。或者设置一个最小尺寸。1.设置容器视图的大小。1.如果容器视图在UIStackView内部,则可以设置Alignment = Fill(而不是Center),这将使容器视图占用UIStackView建议的空间。
Alignment
Fill
Center
9rnv2umw2#
由于上下文有限,我只能给予一个猜测。也许有什么东西挡住了按钮,比如它上面的另一个视图?有时候你的故事板文件中的顺序会使某些东西没有注册触摸。
2条答案
按热度按时间mefy6pfw1#
按钮的容器视图可能缩小为较小的大小,因此它及其子视图不会接收到触摸。显示子视图是因为默认情况下所有视图的“剪切到边界”为false。因此,即使在边界之外也会绘制子视图。最简单的检查方法是为容器视图提供背景色。如果是这种情况,则有几种方法可以解决此问题:
1.给容器设置一个合理的约束。例如,坚持最近的相邻边界。或者设置一个最小尺寸。
1.设置容器视图的大小。
1.如果容器视图在UIStackView内部,则可以设置
Alignment
=Fill
(而不是Center
),这将使容器视图占用UIStackView建议的空间。9rnv2umw2#
由于上下文有限,我只能给予一个猜测。也许有什么东西挡住了按钮,比如它上面的另一个视图?有时候你的故事板文件中的顺序会使某些东西没有注册触摸。