【iOS】菜鳥進階:淺談Layer兩個屬性position和anchorPoint

CALayer有兩個非常重要的屬性:positionanchorPoint

@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重合

如圖所示:顯示全部紫色圖層

只要是CALayer這種類型,他的anchorPoint默認都是(0.5,0.5)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容