/***
cabasicanimation
使用方法animationwithkeypath" 對cabasicanimation 進行例項化註冊,並指定layer的屬性作為關鍵路徑註冊
cabasicanimation *transformanimation = [cabasicanimation animationwithkeypath:@"transform.rotation.y"];
屬性duration 動畫時長
repeatcont 重複次數。持續不停設定huge_valf
repeatduration :設定重複動畫時間,在該時間內,動畫一直執行,不計次數。
begintime :指定動畫開始的時間。預設立即開始。需要延遲的話設定為【cacurrentmediatime()+秒數】的方式
timingfunction:設定動畫的速度變化
autoreverses 動畫結束的時候,是否執行逆動畫
fromvalue 所改變屬性的起始值
tovalue 所改變屬性結束時的值
byvalue 所改變屬性相同起始值得改變量
timingfunction:
fillmode
該屬性定義了你的動畫在開始和結束時的動作。預設值是 kcafillmoderemoved
kcafillmoderemoved :動畫將在設定的begintime開始執行(如果沒設定,則動畫立即執行),動畫完成後layer 降恢復到初始狀態
kcafillmodeforwards 設定為該值,動畫即使之後layer的狀態將保持在動畫的最後一幀,而removedoncompletion的預設屬性值是 yes,所以為了使動畫結束之後layer保持結束狀態,應將removedoncompletion設定為no。
kcafillmodebackwards 設定為該值,將會立即執行動畫的第一幀,不論是否設定了 begintime屬性
kcafillmodeboth 該值是 kcafillmodeforwards 和 kcafillmodebackwards的組合狀態
removedoncompletion// 結束的時候移除
*/
例子 沿著x軸旋轉
cabasicanimation *transformview = [cabasicanimation animationwithkeypath:@"transform.rotation.x"];
transformview.fromvalue =@(0);
transformview.tovalue = @(m_pi*2);
transformview.repeatcount = huge_valf;
transformview.repeatduration = huge_valf;
transformview.duration = 2;
transformview.removedoncompletion = no;
transformview.fillmode = kcafillmodeforwards;
transformview.timingfunction = [camediatimingfunction functionwithname:kcamediatimingfunctionlinear];
[imageview.layer addanimation:transformview forkey:@"animation"];
常用的
animationwithkeypath總結
transform.scale 比例轉化 @(0.8)
transform.scale.x 寬的比例 @(0.8)
transform.scale.y 高的比例 @(0.8)
transform.rotation.x 圍繞x軸旋轉 @(m_pi)
transform.rotation.y 圍繞y軸旋轉 @(m_pi)
transform.rotation.z 圍繞z軸旋轉 @(m_pi)
cornerradius 圓角的設定 @(50)
backgroundcolor 背景顏色的變化 (id)[uicolor purplecolor].cgcolor
bounds 大小,中心不變 [nsvalue valuewithcgrect:cgrectmake(0, 0, 200, 200)];
position 位置(中心點的改變) [nsvalue valuewithcgpoint:cgpointmake(300, 300)];
contents 內容,比如uiimageview的 imageanima.tovalue = (id)[uiimage imagenamed:@"to"].cgimage;
opacity 透明度 @(0.7)
contentsrect.size.width 橫向拉伸縮放 @(0.4)最好是0~1之間的
//折線圖 會用到 strokestart strokeend
strokestart 動畫的fromvalue = 0,tovalue = 1
表示從路徑的0位置畫到1 怎麼畫是按照清除開始的位置也就是清除0 一直清除到1 效果就是一條路徑慢慢的消失
trokestart 動畫的fromvalue = 1,tovalue = 0
表示從路徑的1位置畫到0 怎麼畫是按照清除開始的位置也就是1 這樣開始的路徑是空的(即都被清除掉了)一直清除到0 效果就是一條路徑被反方向畫出來
strokeend 動畫的fromvalue = 0,tovalue = 1
表示 這裡我們分3個點說明動畫的順序 strokeend從結尾開始清除 首先整條路徑先清除後2/3,接著清除1/3 效果就是正方向畫出路徑
strokeend 動畫的fromvalue = 1,tovalue = 0
效果就是反方向路徑慢慢消失
注釋: 動畫的0-1(fromvalue = 0,tovalue = 1) 或1-0 (fromvalue = 1,tovalue = 0) 表示執行的方向 和路徑的範圍
核心動畫CABasicAnimation
core animation是一組非常強大的動畫處理api,使用它能做出非常炫麗的動 畫效果,而且往往是事半功倍 1.開發步驟 初始化乙個動畫物件 caanimation 並設定一些動畫相關屬性 新增動畫物件到層 calayer 中,開始執行動畫 core animation的動畫執行過程都是在後台...
IOS各種動畫
1。html view plain copy uibezierpath movepath uibezierpath bezierpath movepath movetopoint center movepath addquadcurvetopoint topos controlpoint cgpoi...
ios各種動畫效果
最普通動畫 開始動畫 uiview beginanimations nil context nil 設定動畫持續時間 uiview setanimationduration 2 動畫的內容 frame.origin.x 150 img setframe frame 動畫結束 uiview commi...