uistackview中的uview中的按钮没有响应-iOS

时间:2018-09-10 10:30:35

标签: ios swift

我在stackview中有3个元素。

-一个是电子邮件-TextField,

-其他是密码-文本字段;

-最后一个是UIView,其中有按钮。

当我运行它时,该视图中的按钮不响应,而stackview中的同一视图正常响应。另外,当我在该stackview中放置一个按钮时,它会起作用,但是当它在stackview中的视图中时却没有。

enter image description here 我想念什么,但是呢? 谢谢

3 个答案:

答案 0 :(得分:1)

嘿,问题是未定义的约束。在这里,我只是创建了一个简单的解决方案来帮助您。这不是完美的,但会有所帮助 使用堆栈视图时,您需要记住一些事情。水平stackView和垂直stackView有两种类型,stackView具有一些属性,例如

-表示您希望水平或垂直移动它

对齐方式-当您看到,填补领导中心并进行培训时,您很容易理解

分布-在我看来,它是堆栈视图中最重要的部分

  • 填充将使其中三个保持其自然大小,并使第四个占据最大空间。它使用自动版式的内容优先级来确定要拉伸的内容。
  • “相等填充”将使每个子视图具有相同的大小,以便它们填充堆栈视图可用的所有空间。
  • 填充按比例使用每个子视图的内在内容大小将其大小调整为相等。因此,视图1的高度设计为视图2、3和4的两倍,调整其大小后,该比例将保持不变-所有子视图都按比例变大或变小。
  • “等间距”不会调整子视图的大小,而是会调整子视图之间的间距以填充空间。
  • 平等居中是最复杂的,但对许多人来说,也是最美的。它试图确保每个子视图的中心均等间隔。这可能意味着视图1的右边缘距视图2的左边缘仅10个点,而视图2的右边缘距视图3的左边缘仅50个点,但是重要的是视图1的中心,2、3和4都等距隔开。

间距-间距用于在标签,按钮等对象之间提供间距。

enter image description here enter image description here

我将项目15和分配填充之间的间距设置为相等,以便它们可以填充stack view可用的空间。

这是项目https://github.com/waytorohit/SOreadytohelp的链接,因此您可以更好地了解。

参考-https://www.hackingwithswift.com/read/31/2/uistackview-by-example

答案 1 :(得分:0)

  1. 无需约束
  2. 首先删除堆栈视图中的视图和按钮,然后重新添加 创建一个viewController并为此viewController并将其连接

    @IBAction func clickMe(_ sender: UIButton) {
        print("you click me")
    }
    
    • 并给按钮添加一些颜色以进行检查,然后单击

    希望一切正常。

答案 2 :(得分:0)

不需要额外的视图。如果删除此选项,则可以将背景色添加到普通按钮中,并更改背景大小和文本大小以使其看起来相同。

如果这不起作用,则可以进入应用程序设计工具并制作一个彩色框,然后将其作为图像添加到按钮背景中。

设置按钮后,您可以像添加其他任何普通按钮一样添加@IBAction。

希望它能起作用,Toby