首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS:与UIButton的UIControlEventTouchUpOutside事件的行为不一致

iOS:与UIButton的UIControlEventTouchUpOutside事件的行为不一致
EN

Stack Overflow用户
提问于 2011-07-22 00:31:22
回答 1查看 1.5K关注 0票数 4

我想从UIButton获得双重功能。

当用户按下按钮时,我希望它立即触发行为A

但是,如果用户在释放按钮之前将手指拖出按钮,我也希望在释放按钮时触发行为B。

所以,

代码语言:javascript
运行
复制
        [presetButton addTarget: self 
                         action: @selector( presetButtonHit: )
               forControlEvents: UIControlEventTouchDown ];  

        [presetButton addTarget: self 
                         action: @selector( presetButtonSwipe: )
               forControlEvents: UIControlEventTouchUpOutside ];  

作为测试用例,我将简单地从相应的操作方法中记录'A‘或'B’。

A总是被正确命中。

然而,B是零星的。我可以有条不紊地按下手指,拖到按钮外面,等待一秒钟,然后松开。而且它通常不会发射。或者,如果我做一个快速的轻击,它更有可能触发。但还是各占一半。

我只有一个带有背景图片和六个按钮的UIView。

我能做些什么来追踪这个人呢?

我宁愿追根溯源,也不愿手忙脚乱地上下跟踪触球;但如果我必须这样做,有没有什么干净的方法?从我所看到的,这将是一个皇家皮塔,我将不得不弄清楚在我的按钮的向上/向下触摸被点击之前,向上/向下触摸是否被击中,设置旗帜,等等。

EN

回答 1

Stack Overflow用户

发布于 2011-07-22 00:32:42

这是Strange UIButton behavior: Is that normal?的副本,但我建议保留它,因为问题标题写得很好。

当我的手指按在按钮上时,图像变暗了

当我把手指拖开时,当我经过一个看不见的圆周超过按钮边框一厘米时,图像就会恢复到原来的颜色

这是“在释放之前将手指移动到足够远的位置来取消触摸”的典型行为。

如果你在这个区域内松开手指,它就会触发里面的触控。外面的SIM卡。

看起来苹果没有料到会有人使用这些方法从UIButton获得双重功能。

现在,有没有什么简单的方法可以从动作中捕捉XY触控坐标。该操作只接收被按下的按钮的ID。

但这里有一种优雅的方式:

http://sree.cc/iphone/handling-touche-events-for-uibuttons-in-iphone

UIControl具有检测拖动开始/移动/停止的方法。您可以覆盖这些设置并获取屏幕坐标。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6779516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档