CALayer有兩個非常重要的屬性:position和anchorPoint
@property CGPoint position;
用來設置CALayer在父層中的位置
以父層的左上角為原點(0, 0)
@property CGPoint anchorPoint;
稱為“定位點”、“錨點”
決定著CALayer身上的哪個點會在position屬性所指的位置
以自己的左上角為原點(0, 0)
它的x、y取值范圍都是0~1,默認值為(0.5, 0.5)
我們先來談anchorPoint(錨點)
它的X值和Y值最大為1最小為0

Snip20160301_3.png
默認的anchorPoint(錨點)位置是(0.5,0.5),白點就是錨點所在位置

Snip20160301_4.png
此時的anchorPoint(錨點)位置是(0,0),白點就是錨點所在位置

Snip20160301_5.png
此時的anchorPoint(錨點)位置是(0.5,0),白點就是錨點所在位置

Snip20160301_6.png
此時的anchorPoint(錨點)位置是(0.5,1),白點就是錨點所在位置

Snip20160301_7.png
此時的anchorPoint(錨點)位置是(1,1),白點就是錨點所在位置

Snip20160301_8.png
就算寬、高樣式改變了,X和Y值取值范圍還是0~1
此時的anchorPoint(錨點)位置是(1,1),白點就是錨點所在位置

Snip20160301_9.png

Snip20160301_15.png
@property CGPoint anchorPoint;
position
用來設置CALayer在父層中的位置
以父層的左上角為原點(0, 0)
添加一個紫色圖層到藍色圖層上,紫色圖層是藍色圖層的子圖層
假設紫色圖層的position是(50,50)
紫色圖層的anchorPoint(錨點)位置是(0,0)

Snip20160301_10.png
紫色圖層顯示到什么位置,由position屬性決定
圖一是原始圖
圖二是即將移動的圖
圖三是移動完成的圖
紫色圖層自身的anchorPoint(錨點)必須和自身的position重合
===============================================

Snip20160301_11.png
假設
紫色圖層的position是(50,50)紫色圖層的anchorPoint(錨點)位置是(0.5,0.5)圖一是原始圖
圖二是即將移動的圖
圖三是移動完成的圖
===============================================

Snip20160301_12.png
假設
紫色圖層的position是(50,50)紫色圖層的anchorPoint(錨點)位置是(1,1)圖一是原始圖
圖二是即將移動的圖
圖三是移動完成的圖
===============================================

Snip20160301_13.png
紫色圖層寬高為100父控件
position默認位置是左上角原點(0, 0)紫色圖層的anchorPoint(錨點)默認位置是(0.5,0.5)紫色圖層自身的anchorPoint(錨點)必須和自身的position重合
如圖所示:所以只顯示四分之一出來
===============================================

Snip20160301_14.png
如果設置
紫色圖層的anchorPoint(錨點)為(0,0)父控件
position默認位置是左上角原點(0, 0)紫色圖層自身的anchorPoint(錨點)必須和自身的position重合