【问题标题】:UIView with Tap Gesture Segue带有 Tap Gesture Segue 的 UIView
【发布时间】:2013-12-11 20:32:46
【问题描述】:

我的UIViewController 上有一个较小的UIView 作为主UIView 的子视图。这个较小的UIView 也有一张图片和几个标签。

我想要的是让用户触摸这个较小的视图(在这个视图或其内容的任何地方),然后转到一个新的UIViewController

我在较小的视图中添加了一个点击手势,并设置了一个从点击手势到我接下来要显示的UIViewController 的转场。

但是,这仅在用户仅触摸视图上没有标签或图像的空间并且选中“启用用户交互”时才有效。如果触摸图像或标签,则不会发生任何事情,如果未选中“启用用户交互”,则不会发生任何事情。

我完全从情节提要中完成了这项工作,并且只实现了一个prepareForSegue 方法。

我有什么遗漏吗?任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 为什么不在 UIViewController 及其所有触发 segue 的视图上放置一个透明按钮
  • @RyanG 老实说我没有想到这一点。那会让事情变得容易得多!谢谢,我会试试看效果如何。

标签: ios uiview storyboard segue uitapgesturerecognizer


【解决方案1】:

从所有标签和图像中删除用户交互(uiimageview 默认设置为 no)。如果其他元素启用了用户交互,它们将捕捉到触摸;如果他们将用户交互设置为否,层次结构中的下一个视图将捕获它。

非常重要的是从标签和图像视图中删除交互,而不是您正在触摸的视图

【讨论】:

  • 只是为了确保我理解,设置UIView 启用用户交互,然后将其所有子项(标签和图像)设置为不启用用户交互。
  • 是的,就是这样
  • 谢谢,这正是我所缺少的。
【解决方案2】:

为什么不在 UIViewController 及其所有触发 segue 的视图上放置一个透明按钮。这样你就不用担心它下面的任何视图了

【讨论】:

  • 这是一个非常丑陋的方法^^。如果他询问平移或滑动,答案是什么
  • 好吧,如果不需要滑动或平移手势,我看不出有什么缺点。他没有提到滑动或平移。
  • 这里重要的是教他正确处理触摸,而不是破解一个奇怪的解决方案;
  • 是的,我明白你的意思......但我不会将在你的视图上放置一个按钮称为“黑客”。为 UIButton 触摸连接 IBAction 比创建 tapGesture 侦听器并将 UIView 中的每个子视图的 userInteractionEnabled 设置为 NO 容易得多。至少在 IMO 中。
  • @RyanG 我试过这个,虽然它很容易实现并且可以完成我需要完成的所有事情,但我必须确保按钮的处理方式与 UIView 的自动布局相同否则,这比我现在想处理的要麻烦得多。将来我很可能会将此建议用于某些事情,但如果我可以使用我现在已经拥有的东西,那对我来说就更好了。谢谢您的建议。这很有帮助。
猜你喜欢
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 2020-11-01
  • 1970-01-01
  • 2014-11-29
  • 2020-03-25
相关资源
最近更新 更多