iOS中的事件处理流程

    //1.触摸事件
    //事件触摸开始
//  UITouch对象是和手指相关的。表示和手指的个数相等。
    override func touchesBegan(touches: Set, withEvent event: UIEvent?) {
        
        print("手指开始触摸")
        /*
            发生触摸事件后,系统会把事件加入UIApplication管理的队列中。并将事件分发处理,先发送给主窗口,主窗口会在视图的层次结构中找一个最适合的视图来处理事件。事件的传递是从父控件传递到子控件。
         判断自己可否接受事件,如果可以判断触摸点是否在自己身上。如果触摸点也在自己身上。
         从后向前遍历子控件,重复上述步骤。如果子控件也满足上面的条件接着寻找。否则自己处理
         
         touch 事件默认的是向上抛出,但是只要重写了这些方法就相当于不执行默认,如果调用
         super方法就是把事件交给任务链上一级处理,如果当前的view是控制器的 view,上一级就是控制器。
         如果不是控制器上一级就是父视图。
         
         视图结构的最顶级视图不能处理会交给window对象处理,处理不了会交给UIAppliacation对象。
         再不行就被丢弃。
         
        */
    }
    //结束
    override func touchesEnded(touches: Set, withEvent event: UIEvent?) {
        
        print("手机结束")
    }
    //正在触摸
    override func touchesMoved(touches: Set, withEvent event: UIEvent?) {
    
        print("移动")
    }
    //取消了。
    override func touchesCancelled(touches: Set?, withEvent event: UIEvent?) {
        
        
    }

你可能感兴趣的:(iOS,处理事件,touch,事件传递)