我有一个UIView子类( CustomView
,有它自己的处理的全部为这一问题的目的) touches
事件(开始,移动,结束,已取消)。 我也有一个UIButton
就是一个同级CustomView
重叠它。
例如,我的观点的层次结构如下所示:
- 的UIView(控制器的视图)
- CustomView与帧(0,0,300,300)
- 的UIButton与帧(0,0,100,50)
我想CustomView捕捉触摸事件,一旦用户已拖出的UIButton的。 通过调试日志记录,看来该UIControlEventTouchDragExit
事件是拦截(当然这不火,直到触摸是从按钮周围100像素了,但是这并不重要这个问题)。
理想情况下,当拖动退出事件被触发,该按钮将停止接收触摸移动事件,该CustomView会得到touchesBegan
事件(即使我需要伪造一个自己不知何故),以及未来所有的触摸事件( touchesMoved
,等)将是发送到CustomView。
我曾尝试以下,并没有任何作用:
-(void)btnTouchDragExit:(id)sender
{
UIButton * btn = sender;
[btn resignFirstResponder];
[customView becomeFirstResponder];
}
我认为根本UITouch
对象(这是跨越触摸事件一致)没有被重定目标在CustomView点。 我怎样才能达到预期的效果?