美文网首页
视图层与图层

视图层与图层

作者: 月夜胜邪 | 来源:发表于2015-09-17 00:34 被阅读130次
    1.事件响应

    视图层继承于UIResponder,可以相应多种点击事件。

    • – touchesBegan:withEvent:
    • – touchesMoved:withEvent:
    • – touchesEnded:withEvent:
    • – touchesCancelled:withEvent:

    关于事件处理和传递连接:
    1.Responder Chain简析
    2.通过实现一个TableView来理解IOS UI编程

    2.View和CALayer

    Layer 的 frame 是由它的 anchorPoint,position,bounds,和 transform 共同决定的,而一个 View 的 frame 只是简单的返回 Layer的 frame,同样 View 的 center和 bounds 也是返回 Layer 的一些属性。

    关于Frame详细理解:
    理解Frame

    3.UIView显示主要内容,而CALayer则侧重于图形绘制

    UIView是CALayer的代理。

    总结

    总接来说就是如下几点:

    • 每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供。两者都有树状层级结构,layer 内部有 SubLayers,View 内部有 SubViews.但是 Layer 比 View 多了个AnchorPoint。
    • 在 View显示的时候,UIView 做为 Layer 的 CALayerDelegate,View 的显示内容由内部的 CALayer 的 display。
    • CALayer 是默认修改属性支持隐式动画的,在给 UIView 的 Layer 做动画的时候,View 作为 Layer 的代理,Layer 通过 actionForLayer:forKey:向 View请求相应的 action(动画行为)。
    • layer 内部维护着三分 layer tree,分别是 presentLayer Tree(动画树),modeLayer Tree(模型树), Render Tree (渲染树),在做 iOS动画的时候,我们修改动画的属性,在动画的其实是 Layer 的 presentLayer的属性值,而最终展示在界面上的其实是提供 View的modelLayer。
    • 两者最明显的区别是 View可以接受并处理事件,而 Layer 不可以。

    相关文章

      网友评论

          本文标题:视图层与图层

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