2012-08-05 15 views
3

是否可以控制連線速度?如何更改ViewControllers之間的連線速度

我已經檢查了文檔,但沒有給出Apple的方法。

但我更多的是尋找想法來破解和改變低級代碼,以便在慢動作中繼續。

+0

這是用於調試還是用於實際生產?前者可以通過使用Debug-> Toggle Slow Animations在模擬器中解決。 – Till 2012-08-05 00:56:45

+0

@Till,我正在尋找實際生產。其他方法是創建一個全屏疊加,並給出繼續的效果,但它不能很好地工作。 – doNotCheckMyBlog 2012-08-05 01:00:10

+5

你看過自定義賽季嗎?您可以繼承UIStoryboardSegue對象並實現-perform方法,您可以在其中創建自己的動畫,並使用持續時間完成。 – 2012-08-05 01:06:52

回答

5

下面的代碼是自定義的segue,並且您可以設置持續時間的代碼轉換。

- (void)perform 
{ 
    UIViewController *src = (UIViewController *) self.sourceViewController; 
    UIViewController *dst = (UIViewController *) self.destinationViewController; 
    [UIView transitionFromView:src.view 
         toView:dst.view 
         duration:3.0 
         options:UIViewAnimationOptionTransitionFlipFromLeft 
        completion:NULL]; 

} 

示例項目是在這裏GitHub上:https://github.com/weed/p120805_CustomSegue

您可以下載,只是運行它。我希望這對你有所幫助。

0

防止殭屍創作我覺得好做使用子視圖中添加/刪除,以及:

- (void)perform 
{ 
    UIView *src = ((UIViewController *) self.sourceViewController).view; 
    UIView *dst = ((UIViewController *) self.destinationViewController).view; 

    UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; 
    [window insertSubview:dst aboveSubview:src]; 

    [UIView transitionFromView:src 
         toView:dst 
         duration:1.5 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        completion:^(BOOL finished){ 
         [src removeFromSuperview]; 
         window.rootViewController = self.destinationViewController; 
        }]; 
} 

是,如果你不使用導航控制器!

相關問題