Jas*_*son 3 iphone uibutton uiview uitouch first-responder
我有一个UIView子类(CustomView
为了这个问题的目的),它有自己的所有touches
事件处理(开始,移动,结束,取消).我也有一个重叠UIButton
的兄弟姐妹CustomView
.
例如,我的视图层次结构如下所示:
我希望CustomView在用户拖出UIButton后捕获触摸事件.通过调试日志记录,看起来UIControlEventTouchDragExit
事件是要截取的事件(尽管它不会触发,直到触摸距离按钮大约100个像素,但这对此问题并不重要).
理想情况下,当触发拖动退出事件时,按钮将停止接收触摸移动事件,CustomView将获得一个touchesBegan
事件(即使我需要以某种方式假装自己),并且所有未来的触摸事件(touchesMoved
等)将被发送到CustomView.
我尝试了以下,它没有任何影响:
-(void)btnTouchDragExit:(id)sender
{
UIButton * btn = sender;
[btn resignFirstResponder];
[customView becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
我认为底层UITouch
对象(在触摸事件中是一致的)不会被重新定位到指向CustomView.我怎样才能达到预期的效果?
只需使用hitTest:withEvent:来确定哪些视图"应该"接收事件,然后将事件转发到适当的视图.你可能不得不做一些跳舞来拦截事件,然后再去按钮,但这就是hitTest:withEvent:是为了制作的.
归档时间: |
|
查看次数: |
8690 次 |
最近记录: |