簡介
在iOS7系統中,如果你使用簡訊或者appStore蘋果原生的工具的時候會發現這麼一個細節。UINavigationViewController中介面的Push不再是像iOS6的舊介面左移,新的介面直接右側滑入,而是新的視圖是從右側滑入並且蓋在了之前視圖控制器之上,還可以通過手勢在介面左側邊界滑動來跳轉到之前的介面。1.1,1.2。
圖1.1 圖1.2
<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+srvWqrXAxOPKx7fx0tG+rb+0s/bBvbf5zbzWrrzktcTH+LHwoaPT0NK7uPa6w7XEz/vPorjmy9+087zSo6zU2mlPUzfW0KOsy/nT0LrN1eLR+cDgJiMyMDI4NDu1xLmmxNy2vL/J0tTNqLn9yrnTw2lPUzfQwrXEQXBpc8C0yrXP1tfUtqjS5bXEytTNvL/Y1sbG97XEzPjXqqGjPC9wPgo8aDI+0ru49tfUtqjS5bXEzPjXqqO6PC9oMj4KPHA+tbHE47Xju/fEs9K7uPZhcHDW0LXEsLTFpbXEyrG68qOsxLPSu7j2vavSqrPKz9a1xMrTzby/2NbGxve74dTatbHHsMrTzby1xLXXsr+7rMnPwLSho9Xi0ru0ztGnz7CjrM7Sw8e9q86q0OjSqrPKz9a1xMrTzbzKtc/W0ru49tfUtqjS5bXEseS7u6GjPC9wPgo8cD7U2mlPU9bQyrXP1tfUtqjS5cz416rQ6NKq1rTQ0NLUz8LI/bj2sr3W6KO6PC9wPgo8cD4xLrS0vajSu7j2tq+7rb/Y1sbG9zwvcD4KPHA+tdrSu7K9yse0tL2o0ru49sq1z9bBy1VJVmlld0NvbnRyb2xsZXJBbmltYXRlZFRyYW5zaXRpb25pbmfQrdLptcTA4KGj1eK49sDg1tCw/LqstcS0+sLrysfL+dKq1rTQ0LXEtq+7raOsy/nS1NXiuPbA4LG7s8bOqravu62/2NbGxvehozwvcD4KPHA+Mi7U2rPKz9bSu7j20MK1xMrTzby/2NbGxvfHsKOszqrL/Mno1sPM+NeqtcTOr83QoaM8L3A+CjxwPsTj0OjSqs6qxOO9q9Kqs8rP1rXEytPNvL/Y1sbG98ilyejWw9K7uPbL/LXEtq+7rcz416rOr83QoaPNqLn91eK49s6vzdC72LX3wLS78cihs8rP1tDCytPNvL/Y1sbG98qxo6zX1Ly6vavSqta00NC1xLavu62/2NbGxvehozwvcD4KPHA+My7U2rvYtffW0Le1u9i2r7utv9jWxsb3oaM8L3A+CjxwPs2ouf272LX3t723qCgy1tApwLS3tbvYxOO0tL2ousO1xLavu62/2NbGxve1xMq1wP0oMdbQKaGjPC9wPgo8cD7WrrrzwLTKtc/Wy/nT0LK91ujW0LXEtdrSu7K9o7rKtc/W0ru49ravu62/2NbGxvehozwvcD4KPHA+tLS9qNK7uPa2r7utv9jWxsb3PC9wPgo8cCBhbGlnbj0="left"> 建立一個繼承自NSObject並遵循UIViewControllerAnimatedTransitioning
協議的類。UIViewControllerAnimatedTransitioning協議必須實現兩個用來定義視圖控制器之間自訂動畫的方法。
@interface CustomPresentAnimationController :NSObject
@end
在.m檔案中添加必須實現的兩個方法:
1.控制整個跳轉動畫所需要執行的時間。例子代碼中執行的時間設定為了兩秒鐘。
- (NSTimeInterval)transitionDuration:
(id )transitionContext {
return2.0;
}
2.方法參數transitionContext可以協助你成功的擷取跳轉前後的視圖控制器、內容視圖和少量的其他來龍去脈。你可以遍曆這些屬性,依賴於包含的視圖控制器,使你的跳轉動畫變得與眾不同。
- (void)animateTransition:
(id )transitionContext {
// 1. obtain state from the context
UIViewController*toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
CGRectfinalFrame = [transitionContext finalFrameForViewController:toViewController];
// 2. obtain the container view
UIView*containerView = [transitionContext containerView];
// 3. set initial state
CGRectscreenBounds = [[UIScreenmainScreen]bounds]; toViewController.view.frame=
CGRectOffset(finalFrame,0, screenBounds.size.height);// 4. add the view
[containerViewaddSubview:toViewController.view];
// 5. animate
NSTimeIntervalduration =
[self transitionDuration:transitionContext];
[UIViewanimateWithDuration:duration animations:^{
toViewController.view.frame= finalFrame; } completion:^(BOOLfinished) {
// 6. inform the context of completion
[transitionContext completeTransition:YES];
}];
}
點擊關注我,更多精彩內容!!!
群號:336146073