为什么UIView alpha动画从1减慢到0而0比1呢?

时间:2013-06-12 11:00:23

标签: ios objective-c uiviewanimationtransition

我有一个自定义视图,我需要隐藏/取消隐藏动画。 UIView动画不适用于隐藏属性。

所以我已经覆盖了setHidden,我用动画修改了alpha。

它有效,但隐藏它似乎总是比它出现的速度慢。我给了0.3作为持续时间,但仍然消失发生缓慢... 当它出现时,速度很快!

我的代码

/* Will modify alpha instead of hidden var */
-(void)setHidden:(BOOL)hidden
{

    [UIView animateWithDuration:0.5 animations:^{
        self.alpha = hidden?0.0:1.0;
    }];


}

/* need to override this so that, .hidden returns value based on alpha as we are not modifying the hidden ivar */
-(BOOL)isHidden
{

    return (self.alpha == 0.0);
}

1 个答案:

答案 0 :(得分:0)

好的,所以我用了它。

/* Will modify alpha instead of hidden var */
-(void)setHidden:(BOOL)hidden
{
    CATransition *animation = [CATransition animation];
    animation.type = kCATransitionFade;
    animation.duration = 0.2;
    [self.layer addAnimation:animation forKey:nil];

    [super setHidden:hidden];
}