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&Height再addSublayer,才會看得到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視窗的效果
- 一個