作者darktt (小朱)
看板MacDev
标题Re: [问题] 在上下两层view 的gesture触发问题
时间Tue Apr 9 06:24:46 2013
gesture 只要有一个 View 在处理,它就会拦截所有的 gesture 的资讯
不会将它传给下面的那层 View 使用了
最快的方式是在 View D 建立一个独立的 Class
在这里面使用 touchesBegin:WithEvent: 来处理手势的动作
touches 系列的 Method 是不会将手势资讯给拦截下来
所以能将手势的资讯传到下一层 View 使用。
※ 引述《xareelee (XareeLee)》之铭言:
: 假设目前的View Hierarchy如下
: View A {{0,0},{320,568}}
: |-- View B {{0,0},{320,50}}
: |-- View C {{0,50},{320,518}}
: |-- View D {{0,0},{320,568}}
: 也就是view A的上半部是View B 下半部是View C
: 另外还有一个透明的 View D (专门接收gesture用)盖住整个画面
: 我在View B/View C/View D分别加了一些 gesture recognizer
: 主要是View D处理一些特殊的手势 而且touch point可以跨越View B/C (所以才弄一个D)
: 如果View D的手势判定失败 再看touch的点是在View B或C 分别由各自的recognizer处理
: 可是当我View D gesture的delegate method -gestureRecognizerShouldBegin:
: 回传NO时 touch event似乎没有传到 View B/C的gesture recognizer上
: 我尝试了一些关於gesture relation的设定 都没有办法成功
: 我也试过直接把View D 的recoginzer移到View A (并把View D移除)
: 然後设定view B/C 的-requireGestureRecognizerToFail:
: 似乎也是没办法
: 请问一下要怎麽样才能先判定全萤幕的gesture 再判定局部View的gesture?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.114.185.134