首先把要使用的圖片檔放入專案內的 Resource 中,接著鍵入以下程式碼。(View-based Template)
- (void)viewDidLoad {
[super viewDidLoad];
//設定顯示圖片的邊界大小並加入圖片
CGRect imageRect = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
UIImageView *image = [[UIImageView alloc] initWithFrame:imageRect];
[image setImage:[UIImage imageNamed:@"demo.jpg"]];
//將圖片設定成不透明(預設)
image.opaque = YES;
//將圖片顯示於View上
[self.view addSubview:image];
而程式碼到這裡已經可以在畫面上顯示所設定的圖片,下面程式碼將要來製作圖片的淡入與放大效果。
//設定動畫開始時的圖片狀態(透明度與縮放比例)
image.alpha = 0.1;
image.transform = CGAffineTransformMakeScale(0.1, 0.1);
//動畫的參數設定(動畫名稱、速度、動畫開始與結束時的委託處理)
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop)];
//設定動畫結束時的圖片狀態(透明度與縮放比例)
image.alpha = 1.0;
image.transform = CGAffineTransformMakeScale(1.0, 1.0);
//產生動畫
[UIView commitAnimations];
[image release];
}
在動畫開始之前把 alpha 透明度設定為 0.1,圖片 X,Y 軸比例也設成 0.1,而動畫結束時的參數又設回正常,所以在整個動畫執行時會出現範入與放大的效果。
除了這裡所使用的 alpha 和 MakeScale,還有很多不同的 method 可用,如旋轉、倒置、移動等,有興趣的讀者可以自行研究。
請問淡入淡出效果如何輪播index張圖片?
回覆刪除您好:
刪除iOS SDK 並未提供相關的動畫設定函式,這點還必須仰賴使用者自行設計喔。
你可以考慮寫一個 NSArray 來存放所有圖片的名稱,之後使用動畫結束時的方法函式來處理下一個圖片的淡入淡出動畫。
从头浏览了一次你的博客,每篇都写的很用心详细,赞一个。
回覆刪除于是我准备从头到尾认真的学习一遍你的每一篇博客。
:p
yinhan 您好:
刪除也謝謝您喜歡我們的網站!