position和anchorPoint

1.建立一個CALayer,添加到控制器的view的layer中

CALayer *myLayer = [CALayer layer];
// 設置層的寬度和高度(100x100)
myLayer.bounds = CGRectMake(0, 0, 100, 100);
// 設置層的位置
myLayer.position = CGPointMake(100, 100);
// 設置層的背景顏色:紅色
myLayer.backgroundColor = [UIColor redColor].CGColor;

// 添加myLayer到控制器的view的layer中
[self.view.layer addSublayer:myLayer];

第5行設置了myLayer的position爲(100, 100),又由於anchorPoint默認是(0.5, 0.5),因此最後的效果是:myLayer的中點會在父層的(100, 100)位置spa

 

 

 

 

注意,藍色線是我本身加上去的,方便你們理解,並非默認的顯示效果。兩條藍色線的寬度均爲100。3d

2.若將anchorPoint改成(0, 0),myLayer的左上角會在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(0, 0);

3.若將anchorPoint改成(1, 1),myLayer的右下角會在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(1, 1);

4.將anchorPoint改成(0, 1),myLayer的左下角會在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(0, 1);

我想,你應該已經明白anchorPoint的用途了吧,它決定着CALayer身上的哪一個點會在position所指的位置上。它的x、y取值範圍都是0~1,默認值爲(0.5, 0.5),所以,默認狀況下,CALayer的中點會在position所指定的位置上。當anchorPoint爲其餘值時,以此類推。code

相關文章
相關標籤/搜索