View & Layer & Animation

  • View
  • Layer

    • 一個layer可以有很多sublayer,一個sublayer只有一個父layer
    • sublayer被加入的順序會是被畫出來的順序(Queue),因此越先加入在越下面
    • layer所屬的View的subview的layer,會跟layer的sublayer在同一個z平面
    • 低zPosition(CGFloat)layer會比高的更早被畫出來,利用zPosition取代layer的加入順序會更方便解決呈現順序(預設layer的zPosition都是0.0)
    • Layer創建時,預設的frame是(0,0,0,0),所以要給定Width&HeightaddSublayer,才會看得到
    • Layer有兩個座標系統,Postion和AnchorPoint

      • Postion:Layer的AnchorPoint在SuperLayer的點
      • AnchorPoint:Layer內部的點,(0.0)代表這Layer的左上角,(1,1)代表右下角。預設值為(0.5,0.5)
      • Postion和AnchorPoint的關係

        position.x = frame.origin.x + anchorPoint.x * bounds.size.width  
        position.y = frame.origin.y + anchorPoint.y * bounds.size.height
        
      • 變換Position或AnchorPoint的值,不相互影響,只影響Frame的x和y值,上面公式可換為

        frame.origin.x = position.x - anchorPoint.x * bounds.size.width
        frame.origin.y = position.y - anchorPoint.y * bounds.size.height
        
    • ScrollerLayer適合用來呈現需要滑動點or視窗的效果

results matching ""

    No results matching ""