【问题标题】:UIButton Touch Events Outside NavigationBar导航栏外的 UIButton 触摸事件
【发布时间】:2014-08-21 09:39:19
【问题描述】:

我在屏幕底部附近放置了两个按钮。我也有一个透明的 UINavigationBar。当用户滚动内容时,我想将这两个按钮停靠在视图的顶部。我对此进行了两次尝试,但都失败了。

1) 我已将两个按钮放在 UIView 内,并将该 UIView 设置为导航栏的 titleView。这使得它们在导航栏“超出”范围时无响应。

2) 我已将这两个按钮添加到所有其他内容之上的主视图中。这会导致按钮在向上滚动时无响应,因为它们位于导航栏“后面”。

如果我能以某种方式允许将按钮放置在导航栏内,但在靠近视图底部时仍然可以响应,我会很高兴。知道我可能做错了什么吗?

目前在 iOS 7 和 8 中进行测试。

【问题讨论】:

  • 我认为您根本不需要导航栏,因为您可以只为上面的两个按钮使用新视图?
  • @DylanGattey - 好思想的人。我考虑过这一点,但我失去了 UINavigationBar 的所有功能,例如状态管理和一些内置动画控制。如果事实证明这是不可能的,我想我可以没有这些东西,但似乎应该有办法做到这一点。
  • 我完全同意。但我认为苹果的限制太大,不允许我们这样做。糟透了。

标签: ios ios7 uinavigationbar


【解决方案1】:

您可以在导航栏上添加两个具有相同操作的不可见按钮,但仅当您的非不可见按钮靠近导航栏时才处理这些操作。

另外,您可以在滚动视图时将底部按钮保持在同一位置。 或者将它们直接放在导航栏上,根本不滚动。

希望您能找到更好的解决方案。

【讨论】:

  • 这行得通,我很欣赏你的聪明才智,但我希望不要真正解决解决办法。我当前的(解决方法)解决方案是在导航中的相应位置有一组按钮,并且我正在切换该集合的可见性与主视图上的集合。与您的方法类似,但仍不如能够从导航栏 IMO 的一组按钮上捕获触摸事件的解决方案优雅。
  • 最终走这条路,因为似乎没有办法让导航栏外的视图可触摸:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多