2012-01-28 60 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 ]; 
相关问题