2010年10月8日 星期五

View Transition Tutorial

在 iPhone App 上 View 和 View 之間的轉換非常常見, 這邊提供一個簡單範例教導如何在 View 之間做不同效果的轉換.

開始此範例之前, 必須先準備兩個不同的 view (這部份就不額外說明), 以筆者的例子而言, 有兩個 View, 一個是 OneView, 另一個則是 AnotherView, 在這兩個 View 裡面都包含了單一個 Button, 當點擊之後就可以在這兩個 View  之間做轉換.

真正要寫 Transition 的 code 其實很簡單, 以筆者的例子而言, 有兩種轉換方式, 其程式碼如下


-(void)FlipAnotherFromOne{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES];
    [oneController.view removeFromSuperview];
    [window addSubview:anotherController.view];
    [UIView commitAnimations];        
}

-(void)FlipOneFromAnother{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:window cache:YES];
    [anotherController.view removeFromSuperview];
    [window addSubview:oneController.view];
    [UIView commitAnimations];        
}

上面程式碼中的 setAnimationTransition 在 iPhone 裡面定義如下:

typedef enum {
    UIViewAnimationTransitionNone,
    UIViewAnimationTransitionFlipFromLeft,
    UIViewAnimationTransitionFlipFromRight,
    UIViewAnimationTransitionCurlUp,
    UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;


所以若需要不同的效果只要填上自己所需要的參數即可.

需要完整的範例可到 這裡 下載

沒有留言:

張貼留言