两个单独的 UIButtons 共享相同的按下...不能同时按下两个

Posted

技术标签:

【中文标题】两个单独的 UIButtons 共享相同的按下...不能同时按下两个【英文标题】:Two separate UIButtons sharing same press... can't press two at one time 【发布时间】:2016-07-10 07:03:45 【问题描述】:

我有一个视图设置为我屏幕上 UIImageView 的游戏控制器。我有两个向左/向右方向箭头,以及一个 A 和 B 按钮。

当用户按住方向键(touch down)时,它会移动播放器,而在 touch Up 方法上它会停止。

但是,在按住方向性 UIButton 时,其他 UIButton 将无法工作,直到您释放方向上的触摸 Up,从而延迟点击。

另外,假设您按住 A 按钮并简单地点击一次方向键,A 按钮将记录被按下的方向键而不是 A,即使 A 将处于突出显示状态。

我已经检查了所有的连接,它们都是单独的 UIButton 实例,只链接了那些动作。

似乎一个 touchUp 方法被传递给另一个 UIButton 实例,使得同时按下两次是不可能的。我以前没有遇到过这个问题。

任何帮助将不胜感激。

【问题讨论】:

请发截图。 我应该为屏幕截图显示什么? 你需要自己处理触摸事件,或者至少使用UIGestureRecognizers。 【参考方案1】:

检查multipleTouchEnabled 是否适用于父视图:

multipleTouchEnabled

一个布尔值,指示接收器是否处理 多点触控事件。

而 exclusiveTouch 对于按钮来说是错误的:

独家触摸

一个布尔值,指示接收器是否处理触摸 独家活动。

【讨论】:

以上是关于两个单独的 UIButtons 共享相同的按下...不能同时按下两个的主要内容,如果未能解决你的问题,请参考以下文章

如何处理重叠 Mousareas 中的按下和释放信号?

许多 UIButtons 的共享操作,获取特定于按钮的字符串

菜鸟的Xamarin.Forms前行之路——按钮的按下抬起事件的监控(可扩展至其他事件)

Xamarin.Forms 监听Button的按下释放事件

使用 UIButtons 实现切换开关?

如何在 Windows Phone 中更改 RadioButton 的按下状态