position 、 anchorPoint 和縮放動畫

position是anchortPoint在superlayer的點,就是當(dāng)前視圖的anchortPoint 在父視圖上相當(dāng)于position,就像bounds和frame的關(guān)系,position和anchortPoint相互獨立,改變一個的值,另一個的值不會變,他們的關(guān)系是:

position.x = frame.origin.x + anchortPoint.x * bounds.x

因此改變一個的值只會改變frame的origin,如果這一個的值要重置frame回原來的值,否則會看不到視圖的,舉一個縮放的例子:按右上角錨點縮放

view.frame = CGRectMake(0,0, 100, 100);   
view.layer.anchorPoint = CGPointMake(1, 0); 

// 設(shè)置完anchortPoint必須要重新設(shè)置fame,否則frame根據(jù)上邊的等式frame會變
view.frame = CGRectMake(0,0, 100, 100);  

view.alpha = 0;

// 必須先設(shè)置anchortPoint再設(shè)置affineTransform,affineTransform是設(shè)置transform,
而transform是應(yīng)用在anchorPoint上的,如果anchorPoint改變,必須重新設(shè)置transform

view.layer.affineTransform = CGAffineTransformMakeScale(0.01, 0.01); 

[UIView animateWithDuration:1 animations:^{
    view.alpha = 1;
    view.layer.affineTransform = CGAffineTransformMakeScale(1, 1);
}];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容