美文网首页
《iOS事件触摸与手势》

《iOS事件触摸与手势》

作者: 大兵_iOS | 来源:发表于2017-05-12 16:25 被阅读0次

    iOS事件触摸与手势

    一、事件分发处理【由外到内】
    在iOS中发生触摸后,事件会加到UIApplication事件队列,UIApplication会从事件队列取出最前面的事件进行分发处理,通常会先分发给主窗口,主窗口会调用hitTest:withEvent:方法,查找适合的事件触发视图,即 找到被触摸的视图对象
    寻找流程如下:
    在顶级视图(keyWindow的视图)上调用pointInside:withEvent:方法判断触摸点是否在当前视图内;
    如果返回NO,那么keyWindow的hitTest:withEvent:返回nil;
    如果返回YES,那么它会向当前视图的所有子视图发送hitTest:withEvent:消息,遍历所有子视图的顺序是从subviews数组的末尾向前遍历(从界面最上方开始向下遍历);
    如果有subview的hitTest:withEvent:返回非空对象,则keyWindow的hitTest:withEvent:返回此对象,处理结束;
    如果所有subview遍历结束仍然没有返回非空对象,则keyWindow的hitTest:withEvent:返回顶级视图;

    常用属性的设计
    <code> userInteractionEnabled = NO;
    hidden = YES;
    alpha = 0 ~ 0.01;
    <code>

    相关文章

      网友评论

          本文标题:《iOS事件触摸与手势》

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