我的主视图有一个子视图,里面有一个UIActivityIndicatorView。最初,此子视图的hidden
属性设置为YES
。
我希望这个子视图淡入屏幕。我使用以下代码来实现此目的:
[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 :(得分: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 ];