iOS之UIView的動畫

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];//關閉動畫













發佈了23 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章