IOS開發筆記UIView使用animateWithDuration控制頁面效果
引言:最近學習了一些頁面的跳轉動畫效果。使用的是UIview的animateWithDuration方法。當然之前的beginAnimations也是可以實現的。
比如一:從螢幕下部往上漸漸彈出一個圖片
[plain]
-(void) fadeIn
{
CGRect rect = [[UIScreen mainScreen] bounds];
self.view.center = CGPointMake(rect.size.width/2, 720);
[UIView animateWithDuration:0.5f animations:^{
self.view.center = CGPointMake(rect.size.width/2, 240+10);
} completion:^(BOOL finished) {
// [imageView setImageURL:[NSURL URLWithString:imgUrl]];
}];
}
比如二:再漸漸退回去
[plain]
-(void) fadeOut
{
CGRect rect = [[UIScreen mainScreen] bounds];
[UIView animateWithDuration:0.5f animations:^{
self.view.center = CGPointMake(rect.size.width/2, 720);
} completion:^(BOOL finished) {
[imageView cancelImageLoad];
[imageView release];
//[imgUrl release];
// imageView = nil;
//imgUrl = nil;
// [self.view removeFromSuperview];
}];
}
如果使用beginAnimations就是下面這樣的。。。。
[plain]
CGRect rect = [[UIScreen mainScreen] bounds];
self.myimg.center = CGPointMake(rect.size.width/2, 720);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
self.myimg.center = CGPointMake(rect.size.width/2, 720);
[UIView commitAnimations];
備註:其實掌握了 self.view.center = CGPointMake(rect.size.width/2, 240+10);
設定其中心點座標即可。
下面是可以設定動畫效果的屬性:
frame
bounds
center
transform
alpha
backgroundColor
contentStretch
例如一個檢視淡出螢幕,另外一個檢視出現的程式碼:
[UIView animateWithDuration:1.0 animations:^{
firstView.alpha = 0.0;
secondView.alpha = 1.0;
}];
completion為動畫執行完畢以後執行的程式碼塊
options為動畫執行的選項。可以參考這裡
delay為動畫開始執行前等待的時間