0

我正在尝试使用翻译动画创建一个弹出横幅(基本上是一个广泛的自定义视图弹出和隐藏在屏幕上)。这是我到目前为止的代码:

- (void)popAddProductBanner {
    [self.view bringSubviewToFront:[self.view.subviews objectAtIndex:3]];
    [_addProductBanner setHidden:YES];
    UIView *bannerView = [[[NSBundle mainBundle] loadNibNamed:@"HouraAddProductBannerView" owner:self options:nil] objectAtIndex:0];
    [_addProductBanner addSubview:bannerView];
    [UIView transitionWithView:_addProductBanner duration:0.5 options:UIViewAnimationOptionCurveEaseIn animations: ^{
        [_addProductBanner setHidden:NO];
        [_addProductBanner setTransform:CGAffineTransformMakeTranslation(0.0, -44.0)];
    } completion:^(BOOL finished) {
        [NSTimer scheduledTimerWithTimeInterval:3.0
                                         target:self
                                       selector:@selector(dismissAddProductBanner)
                                       userInfo:nil
                                        repeats:NO];
    }];
}

-(void)dismissAddProductBanner {
    [UIView transitionWithView:_addProductBanner duration:0.5 options:UIViewAnimationOptionCurveEaseIn animations: ^{
        [_addProductBanner setTransform:CGAffineTransformMakeTranslation(0.0, 44.0)];
        [_addProductBanner setHidden:YES];
    } completion:nil];
}

可以通过不同的按钮在整个应用程序中触发此弹出窗口。我的问题是弹出动画效果很好,但隐藏动画(相同但以另一种方式)不起作用。横幅只是消失,没有任何动画。

有人知道这里发生了什么吗?这对我真的很有帮助。谢谢。

4

1 回答 1

0

不要为隐藏的属性设置动画。而是为 alpha 属性设置动画,如果要在完成中设置隐藏。它目前适用于第一个动画,因为 hidden 部分绑定到 alpha。

于 2012-10-25T14:43:42.313 回答