1,介紹一下概念
frame:與view中的frame概念相同,(x,y)subLayer左上角相對于supLayer坐標(biāo)系的位置關(guān)系;width, height表示subLayer的寬度和高度。
bounds:與view中的bounds概念相同,(x,y)subLayer左上角相對于自身坐標(biāo)系的關(guān)系;width, height表示subLayer的寬度和高度。

position:錨點(diǎn)在supLayer坐標(biāo)系中的位置;
anchorPoint:錨點(diǎn)在自身坐標(biāo)系中的相對位置,默認(rèn)值為(0.5,0.5),左上角為(0,0),右下角為(1,1),其他位置以此類推;錨點(diǎn)都是對于自身來講的. 確定自身的錨點(diǎn),通常用于做相對的tranform變換.當(dāng)然也可以用來確定位置;

2,介紹一下關(guān)系
舉例:
1,frame的改變會影響位置position,進(jìn)而影響bounds的寬高,不會影響錨點(diǎn)anchorPoint;
如:frame為(100,100,100,100),bounds為(0,0,100,100),position為(150,150),錨點(diǎn)為(0.5,0.5);
此時frame變?yōu)椋?00,100,200,200),bounds(0,0,200,200),position(200,200),錨點(diǎn)為(0.5,0.5);
2,bounds改變不會影響supLayer在中位置,也不會影響錨點(diǎn),會影響frame;
如:frame為(100,100,100,100),bounds為(0,0,100,100),position為(150,150),錨點(diǎn)為(0.5,0.5);
此時bounds變?yōu)椋?,0,200,200),position(150,150),錨點(diǎn)為(0.5,0.5)不變,則frame為(50,50,250,250);
總之:(1)位置,錨點(diǎn),frame都是相對于supLayer,三者互相影響;(錨點(diǎn)改變, position不影響, frame變化;frame變化, 錨點(diǎn)不影響, position變化;position變化, 錨點(diǎn)不影響, frame變化)
? ? ? ? ? ? ? position.x = frame.origin.x + anchorPoint.x * frame.size.width;
? ? ? ? ? ? ? position.y = frame.origin.y + anchorPoint.y * frame.size.height;
(2)bounds不會影響位置,錨點(diǎn),只會影響frame,由于寬高變了,導(dǎo)致frame寬高的變化,又由于位置position沒變,進(jìn)而影響左上角左邊位置;(bounds變化,錨點(diǎn)位置不影響,frame變化)
frame.size.width = bounds.size.width
frame.size.height = bounds.size.height
frame.origin.x = anchorPoint.x * frame.size.width - position.x;
frame.origin.y = anchorPoint.y * frame.size.height - position.y;
參考
http://www.cnblogs.com/AbeDay/p/5026870.html