2013年4月16日 星期二

iPhone 轉換 UIView 時的動畫效果

轉錄自http://pro.ctlok.com/2010/03/iphone-uiview.html Apple 提供了流暢的動畫功能給各位開發者,差不多每一個 App 都會用到的動畫功能,無需複雜的程式碼便可以輕鬆使用到。 在這裡簡單介紹一下。 使用以下的程式碼便可以制作出動畫效果。 UIViewAnimationTransition transition = UIViewAnimationTransitionCurlUp; UIViewAnimationCurve curve = UIViewAnimationCurveEaseInOut; [UIView beginAnimations:@"anim" context:NULL]; [UIView setAnimationCurve:curve]; [UIView setAnimationTransition:transition forView:[self view] cache:YES]; [UIView setAnimationDuration:1.0f]; [UIView commitAnimations]; 現在雖然有動畫效果,但頁面還是沒有改變,例如要新增一個黑色的頁面。 以下程式碼要加到動畫程式碼之前。 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; [view setBackgroundColor:[UIColor blackColor]]; [self.view addSubview:view]; 完整轉頁效果: UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; [view setBackgroundColor:[UIColor blackColor]]; [self.view addSubview:view]; UIViewAnimationTransition transition = UIViewAnimationTransitionCurlUp; UIViewAnimationCurve curve = UIViewAnimationCurveEaseInOut; [UIView beginAnimations:@"anim" context:NULL]; [UIView setAnimationCurve:curve]; [UIView setAnimationTransition:transition forView:[self view] cache:YES]; [UIView setAnimationDuration:1.0f]; [UIView commitAnimations]; [view release]; 是否很簡單? 其實 Apple 已經提供了四動晝效果和四種速度變化。 向上翻頁的效果: //Curl Up UIViewAnimationTransition transition = UIViewAnimationTransitionCurlUp; 向下翻頁的效果: //Curl Down UIViewAnimationTransition transition = UIViewAnimationTransitionCurlDown; 由左向右旋轉的效果: //Flip From Left UIViewAnimationTransition transition = UIViewAnimationTransitionFlipFromLeft; 由右向左旋轉的效果: //Flip From Right UIViewAnimationTransition transition = UIViewAnimationTransitionFlipFromRight; 開始時慢慢加速,結束前慢慢減速: UIViewAnimationCurve curve = UIViewAnimationCurveEaseInOut; 開始時慢慢加速: UIViewAnimationCurve curve = UIViewAnimationCurveEaseIn; 結束前慢慢減速: UIViewAnimationCurve curve = UIViewAnimationCurveEaseOut; 開始到尾也是均速: UIViewAnimationCurve curve = UIViewAnimationCurveLinear; 大家可以試試那一個效果最適合你的 App。

沒有留言:

張貼留言