首页 > 解决方案 > uistackview中的uview中的按钮没有响应 - ios

问题描述

我在stackview中有3个元素。

-一个是电子邮件 - TextField,

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

- 最后一个是 UIView,里面有按钮。

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

在此处输入图像描述 我错过了一些东西,但是什么?谢谢

标签: iosswift

解决方案


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

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

对齐- 当您看到,填充领先中心和训练时,您可以轻松理解

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

  • 填充将使其中三个保留其自然大小,并使第四个占据最大空间。它使用 Auto Layout 的内容拥抱优先级来决定拉伸哪一个。
  • Fill Equally 将使每个子视图具有相同的大小,以便它们填充堆栈视图的所有可用空间。
  • Fill Proportionally 使用每个子视图的固有内容大小以相等的量调整它们的大小。因此,视图 1 的高度设计为视图 2、3 和 4 的两倍,当它们调整大小时,该比例将保持不变——所有子视图按比例变大或变小。
  • Equal Spacing 不会调整子视图的大小,而是调整子视图之间的间距以填充空间。
  • 等距定心是最复杂的,但对许多人来说也是最美观的。它试图确保每个子视图的中心是等距的。这可能意味着视图 1 的右边缘距离视图 2 的左边缘仅 10 点,而视图 2 的右边缘距离视图 3 的左边缘 50 点,但重要的是视图 1 的中心, 2, 3 和 4 的间距相同。

间距- 间距用于提供标签、按钮等对象之间的空间。

在此处输入图像描述在此处输入图像描述

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

这是项目的链接https://github.com/waytorohit/SOreadytohelp以便您更好地理解。

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


推荐阅读