UIView實現動畫效果

2021-07-04 18:04:20 字數 2766 閱讀 8553

uiview類的很多屬性都設計為動畫,動畫的屬性是指當屬性從乙個值變成另外乙個值時可以支援動畫,同時通知uikit需要執行什麼樣型別的動畫,uiview物件支援動畫的屬性有如下幾個:

frame屬性:可以使用該屬性改變尺寸和位置

bounds:改變尺寸

center:改變檢視的位置

alpha:改變檢視的透明度

backgroundcolor:改變檢視的背景

contentstretch:改變檢視內容如何拉伸

ios封裝了core animation來是實現動畫,core animation的最大好處是可以幫助mac或者iphone的開發者減少**量。因為如果你想用core image或者open gl實現介面的動畫特效,其實也是可以的,主要是非常麻煩。而用core animation可以極大簡化開發難度和減少**量,ios提供的核心動畫程式設計介面,可以讓程式設計人員以非常簡單的方式實現炫目流暢的動畫效果

翻轉的動畫  

//開始動畫

[uiview beginanimations:@"wap view" context:nil];

//設定時常

[uiview setanimationduration:1];

//設定動畫淡入淡出

[uiview setanimationcurve:uiviewanimationcurveeaseinout];

//設定**

[uiview setanimationdelegate:self];

//設定翻轉方向

[uiview setanimationtransition: uiviewanimationtransitionflipfromleft forview:manimageview cache:yes];

//動畫結束

[uiview commitanimations];

旋轉動畫

建立乙個cgaffinetransform transform物件 cgaffinetransform transform;

//設定旋轉度數

transform = cgaffinetransformrotate(manimageview.transform,m_pi/6.0);

//動畫開始

[uiview beginanimations:@"rotate" context:nil ];

//動畫時常

[uiview setanimationduration:2];

//新增**

[uiview setanimationdelegate:self];

//獲取transform的值

[manimageview settransform:transform];

//關閉動畫

[uiview commitanimations];

偏移動畫

[uiview beginanimations:@"move" context:nil];

[uiview setanimationduration:2];

[uiview setanimationdelegate:self]; //改變它的frame的x,y的值 manimageview.frame=cgrectmake(100,100, 120,100);

[uiview commitanimations];

翻頁動畫

[uiview beginanimations:@"curlup" context:nil];

[uiview setanimationcurve:uiviewanimationcurveeaseinout];//指定動畫曲線型別,該列舉是預設的,線性的是勻速的

//設定動畫時常 [uiview setanimationduration:1];

[uiview setanimationdelegate:self]; //設定翻頁的方向

[uiview setanimationtransition:uiviewanimationtransitioncurlup forview:manimageview cache:yes];

//關閉動畫

[uiview commitanimations];

縮放動畫

cgaffinetransform transform;

transform = cgaffinetransformscale(manimageview.transform,1.2,1.2);

[uiview beginanimations:@"scale" context:nil];

[uiview setanimationduration:2];

[uiview setanimationdelegate:self];

[manimageview settransform:transform];

[uiview commitanimations];

取反的動畫效果是根據當前的動畫取他的相反的動畫

cgaffinetransform transform;

transform=cgaffinetransforminvert(manimageview.transform);

[uiview beginanimations:@"invert" context:nil];

[uiview setanimationduration:2];//動畫時常

[uiview setanimationdelegate:self];

[manimageview settransform:transform];//獲取改變後的view的transform [uiview commitanimations];//關閉動畫

UIView 的各種動畫效果

最普通動畫 開始動畫 uiview beginanimations nil context nil 設定動畫持續時間 uiview setanimationduration 2 動畫的內容 frame.origin.x 150 img setframe frame 動畫結束 uiview commi...

UIView 實現動畫

動畫為使用者介面在不同狀態之間的遷移過程提供流暢的視覺效果。在iphone 類中,以簡化動畫的建立過程。也就是說,當這些屬性值發生變化時,檢視為其變化過程提供內建的動畫支援。雖然執行動畫所需要的工作由uiview類自動完成,但您仍然必須在希望執行動畫時通知檢視。為此,您需要將改變給定屬性的 包裝在乙...

iOS 動畫 UIView動畫

viewcontroller.m ui 23 動畫 import viewcontroller.h inte ce viewcontroller property strong,nonatomic iboutlet uiview opeview1 property strong,nonatomic ...