美文网首页
事件分发和事件响应

事件分发和事件响应

作者: LeeDev | 来源:发表于2017-08-16 15:59 被阅读10次

    事件分发+响应:http://blog.csdn.net/itianyi/article/details/48442951
    页面的渲染:http://www.cocoachina.com/ios/20151203/14549.html
    保持页面流畅:https://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/

    1.事件分发

    是从 用户点击屏幕 =》 Application =》Window =》View =》子视图 。
    调用hitTest:withEvent:(通过重写可以改变事件的分发) ,这个视图之前会先通过调用pointInside:withEvent: 返回一个bool(判断是否在当前的视图中)

    hit_test.png
    
    @implementation FatherView
    
    //消息分发
    -(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
        
        //这句话其实是调用 在当前视图【self】中已经找到了hitView,可能是子视图也可能是自己
        id hitView = [super hitTest:point withEvent:event];
        
        NSLog(@"hitView = %@",hitView);
        
        if (hitView == nil) {
            
            UIView * subView = self.subviews[0];
            
            //把事件转给子类视图去处理
            if ([subView pointInside:[self convertPoint:point toView:subView] withEvent:event]) {
                
                return subView;
            }
        }
        
        return hitView;
    }
    
    
    
    @end
    

    2.事件响应

    如果找到了hitView 就直接返回hitView,如果没有找到,就相当于hitView的一个回溯过程,

    相关文章

      网友评论

          本文标题:事件分发和事件响应

          本文链接:https://www.haomeiwen.com/subject/dzvirxtx.html