2012-04-16 60 views
0

我正在使用自定義動畫來呈現我的視圖控制器。這裏的代碼:使用UIViewController自定義動畫

-(void)launchCustomModal:(id)sender 
{ 
    UIButton *buttonClicked = (UIButton *)sender; 
    int selection; 
    selection = buttonClicked.tag; 
    [ticker removeFromSuperview]; 
    ticker = nil; 

    if (selection == 3) 
    { 
     MyViewController *myVC = [[MyViewController alloc]initWithNibName:nil bundle:nil]; 
     modalViewController= [[UINavigationController alloc]initWithRootViewController:myVC]; 
     modalViewController.navigationBarHidden = YES; 
     [modalViewController setToolbarHidden:YES]; 

     CGRect result = self.view.bounds; 
     result.origin.y = -result.size.height; 
     modalViewController.view.frame=result; 
     [self.view addSubview:modalViewController.view]; 

     [UIView animateWithDuration:.375 
         animations:^{ 
          modalViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 
         } 
         completion:^(BOOL finished) { 
          NSLog(@"Finished");   
         }]; 
    } 

    return; 
} 

我注意到這種方法使非常滯後的過渡。如果我以普通模式啓動VC,它的運行非常順利。另外,如果我獨立於視圖控制器創建一個視圖的動畫,它也可以非常流暢地運行。我想知道是否有什麼關於風險投資可能導致它動畫如此糟糕?如果它是我正在做的事情的一個症狀,或者視圖控制器不是爲了這樣處理,等等。任何輸入都非常感謝。謝謝!

+1

固定!我從MyViewController中刪除了一個陰影,現在它效果很好。猜這些很難呈現 – 2012-04-16 20:33:02

+0

是的,陰影會每次都做到。我避免他們像瘟疫一樣。 – 2012-04-16 20:38:00

+0

請將您的解決方案作爲正確的答案添加,這樣未來的讀者更容易看到您找到了解決方案:-) – 2012-08-21 15:26:24

回答

0

這是CALayer陰影。刪除它們,它工作得很好。