使多视图按钮可点击

Posted

技术标签:

【中文标题】使多视图按钮可点击【英文标题】:Making Multiview Button Tappable 【发布时间】:2016-02-20 02:21:45 【问题描述】:

目前这是一个UIStackView,带有一个UIImageView 和一个UILabel

我希望整个东西都是可点击的。

我可怜的人目前的解决方案是将UIView 覆盖在UIStackView 之上,并在组合中添加UITapGestureRecognizer。但这很糟糕。

如果我将UITapGestureRecognizer 添加到UIStackView,则不会发生任何事情,因为子视图会填满UIStackView

将其变成按钮的最佳做法是什么?

【问题讨论】:

你能展示初始化代码或故事板吗? 我不明白为什么你不能对 UIButtons 做同样的事情。您可以让您的 UIButtons 看起来与您的 UIView 和 UILabel 完全相同,并且您将解决问题而无需想出一个“hack”来使 UIView 子类可点击。 好吧,在 UIButton 一个 UIImageView 加上一个 UILabel 的意义上,他肯定是对的。但是将它们安排成看起来像您的堆栈视图给您的效果可能比它的价值更多。 @matt 不确定我是否关注。您是否建议我使用 UIButton? 【参考方案1】:

没有任何反应,因为子视图填满了 UIStackView。

是的,但是如果你关闭这些子视图的userInteractionEnabled,触摸会传递到 UIStackView 并且附加到 UIStackView 的手势识别器将起作用。

【讨论】:

@EricJohnson 请记住,此解决方案不会为您提供按钮的外观和感觉。最终用户不会获得点击应该是按钮的预期行为。 轻点就是轻点。你指的是什么具体行为? @ios上瘾

以上是关于使多视图按钮可点击的主要内容,如果未能解决你的问题,请参考以下文章

android中EditText内的可点击按钮(或任何视图)

禁用对 UIView 背景的触摸,以便下部视图上的按钮可点击

多按钮的相同子视图,多视图

在 viewCell,UIViewCollection 中使按钮可点击

多视图应用

带有列表子项可聚焦android的列表视图上下文菜单