IOS中我們可以通過Storyborad以及segue來實現我們自己的場景切換動畫,新建項目使用Single View application模板并取名為MyCustomSegue。
使用storyboard托出另一UIViewController并分設置兩個控制器的視圖顏色,并設置跳轉頁面的segue為custom
設置如圖
新建文件MyCustomChangeSegue并重新perform方法
1 @implementation MyCustomChangeSegue 2 3 -(void)perform 4 { 5 UIViewController *sourceViewController = self.sourceViewController; 6 UIViewController *destViewController = self.destinationViewController; 7 8 [UIView animateWithDuration:1 animations:^{ 9 CGPoint centerPoint = sourceViewController.view.center;10 sourceViewController.view.frame = CGRectMake(centerPoint.x,centerPoint.y , 0, 0);11 sourceViewController.view.alpha = 0;12 } completion:^(BOOL success){13 UIView *destView = destViewController.view;14 sourceViewController.view.hidden = YES;15 [[sourceViewController.view superview] addSubview:destView];16 CGRect destRect = destView.frame;17 CGPoint centerPoint = destView.center;18 destView.frame = CGRectMake(centerPoint.x,centerPoint.y , 0, 0);19 destView.alpha = 0;20 [UIView animateWithDuration:0.3 animations:^{21 destView.frame = destRect;22 destView.alpha = 1;23 } completion:^(BOOL success){24 destView.alpha = 1;25 destView.frame = destRect;26 sourceViewController.view.hidden = NO;27 [sourceViewController PResentViewController:destViewController animated:NO completion:nil];28 }];29 }];30 }31 32 @end
運行程序點擊go按鈕,我們就會看到神奇的一幕了!
新聞熱點
疑難解答