2012-01-28 55 views
3

我的主視圖有一個子視圖,裏面有一個UIActivityIndi​​catorView。最初該子視圖的hidden屬性設置爲YESUIActivityIndi​​catorView在出現在transitionWithView之後沒有動畫效果

我想讓這個子視圖淡入到屏幕上。我用下面的代碼來實現這一目標:

[UIView transitionWithView:self.view 
        duration:3.0 
        options:(UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction) 
       animations:^{ 
        self.subviewWithActivitySpinnerInIt.hidden = NO; 
       } 

即使活動的指標設置爲動畫,它並不與上面的代碼後出現的動畫。但是,如果我用上面的代碼替換上面的代碼 - 完全相同的地方 - 那麼當活動指示符出現時,它就是動畫。

self.subviewWithActivitySpinnerInIt.hidden = NO; 

任何想法是怎麼回事?

(使用的Xcode 4.2和iOS 5)

回答

0

您是否嘗試過也添加代碼完成塊?問題中完成參數丟失。

[UIView transitionWithView:self.view 
        duration:3.0 
        options:(UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction) 
       animations:^{ self.subviewWithActivitySpinnerInIt.hidden = NO; } 
       completion:^{ self.subviewWithActivitySpinnerInIt.hidden = NO; }]; 

作爲替代方案,雖然它可能不適合你的需求,你可能要考慮使用animateWithDuration代替transitionWithView。我認爲下面的代碼是等效的:

[UIView animateWithDuration:3.0 
         delay:nil 
        options:UIViewAnimationOptionCurveLinear 
       animations:^{ 
        self.subviewWithActivitySpinnerInIt.alpha = 1.0; 
       } 
       completion:nil ]; 
相關問題