唉,一个 IOS 问题求助,实在是没办法了。。要失眠了~~~~~

2014-04-24 22:17:51 +08:00
 xujialiang
我模仿微信的按住说话,Button在屏幕底部,我按住button,没有触发touchdown事件。我手指离开时,同时触发touchdown和touchup事件。。
但是 如果我把button 放在屏幕上方一点,比如屏幕中间,就一切正常,按下直接能触发touchdown事件。为什么?
5497 次点击
所在节点    iDev
25 条回复
xx314327475
2014-04-25 12:15:57 +08:00
我为什么点了这个帖子.....额...
Jellyan
2014-04-25 13:14:45 +08:00
楼主好无辜,完全被忽略了
NUT
2014-04-25 13:29:35 +08:00
可以自己实现一个button。
思路:继承一个UIview,当触摸点在这个view上时,触发按下的事件。如果触摸点划出这个范围则响应不是没在触摸区域的事件。
主要玩
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
这三个方法。

AwesomeMenu这个库有具体的实现。看了就明白。
txx
2014-04-25 13:34:35 +08:00
@NUT 樓主發現問題是和iOS7的滑動手勢衝突了。

所以關注點應該是 把滑動返回的 delegate 設到當前頁面 然後處理手勢區域。

不過我還是更推崇用 Gesture,然後iOS 7 多了一些手勢有關的delegate,能更好的處理衝突。
xujialiang
2014-04-25 14:35:38 +08:00
在上班。。。。回去再看看具体怎么解决,前面试了下interactiongesture的代理,手指碰上屏幕就有事件。下面还要判断 是否点在button上。
@NUT 自己写个button太麻烦了,如果好多页面有自定义的button,那要写好多呢。。。。。

我想让navigationcontroller的左滑识别区域不包含屏幕底部,高度大概44.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/109917

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX