我有几个UIButton用于在主区域中点击时设置当前操作的s.我还想让用户直接从按钮拖动到主区域并采取相同的动作; 实质上,touchesBegan和touchesMoved应该在触摸UIButtons时传递到主视图,但也应该发送按钮按下动作.
现在,我在内部修改控制.拖动出口调用内部部分设置控件,然后调用触摸开始部分启动主区域触摸操作.
但是,此时,touchesMoved和touchesEnded显然没有被调用,因为触摸起源于UIButton.
有没有办法半忽略触摸所以它们被传递到主区域,但也允许我先设置控件?
我有1个主视图和1 个子视图:
主视图> SubView
我认为主视图是从SubView "窃取"事件.
例如,当我点击SubView时,只有Main View GestureRecognizer会被激活.
这是我的自定义GestureRecognizer(拦截每个触摸事件):
import UIKit
import UIKit.UIGestureRecognizerSubclass
class MainGestureRecognizer: UIGestureRecognizer {
override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {
super.touchesBegan(touches, withEvent: event);
//nextResponder() ??
state = UIGestureRecognizerState.Began;
}
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!) {
super.touchesMoved(touches, withEvent: event);
//nextResponder() ??
state = UIGestureRecognizerState.Changed;
}
override func touchesEnded(touches: NSSet!, withEvent event: UIEvent!) {
super.touchesEnded(touches, withEvent: event);
//nextResponder() ??
state = UIGestureRecognizerState.Ended;
}
override …Run Code Online (Sandbox Code Playgroud)