• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 捕获组合的按钮按下和平移手势

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:14:01 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我需要在 iOS 上捕获以下触摸事件并对其进行解释:

  1. UIButton 内的手指触地(保持向下)
  2. 手指 B 在屏幕其他位置执行平移手势,提供连续回调。 (我打算使用 UIPanGestureRecognizer 来实现这个功能)。
  3. 在同一个 UIButton
  4. 内进行手指修饰

本质上,按住 UIButton 会使应用程序进入一种特殊模式,该模式仅在按住按钮时持续。在此期间执行的平移手势与未按下按钮时执行的操作不同。

到目前为止我已经尝试过:

  • 在我的 UIViewController 子类中将 UIButton Touch Down 和 Touch Up Inside 连接到 IBActions。我也有
    • 遇到的问题:当按下按钮时另一个手指在屏幕上发生另一个手势时,不会调用 Touch Up Inside 操作。这是因为原来的触摸被取消了。
  • UITapGestureRecognizer 附加到 UIButton
    • 遇到的问题:这只在手指离开屏幕时触发,因此不能在按下按钮时将应用置于特殊模式。

我需要使用 UIButton 而不是 UIView 以便按钮在按下时具有正确的突出显示行为。

鉴于我目前遇到的问题,最好的整体方法是什么?



Best Answer-推荐答案


在“按钮”上使用具有较短 minimumPressDuration 的 UILongPressGestureRecognizer http://developer.apple.com/library/ios/#documentation/uikit/reference/UILongPressGestureRecognizer_Class/Reference/Reference.html#//apple_ref/occ/cl/UILongPressGestureRecognizer

重要的是使用手势识别器委托(delegate)来确保gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:为这些识别器返回YES。然后,当您的 UIPanGestureRecognizer 调用事件处理程序时,您可以检查 UILongPressGestureRecognizer 的状态,如果未按下按钮,则忽略平移手势。

关于ios - 捕获组合的按钮按下和平移手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17968966/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap