【问题标题】:How do I see the progress of a pop animation?如何查看弹出动画的进度?
【发布时间】:2015-10-20 22:16:15
【问题描述】:

我有一个主视图控制器和一个详细视图控制器。我有一个按钮,当前在 push segue 到细节后消失,并在调用 pop segue 时重新出现,无论是交互式手势还是后退按钮。

这看起来真的很突然,我想用弹出手势淡入按钮上的 alpha,但我没有看到 UINavigationControllerDelegate 的任何委托或数据源方法显示弹出手势的进度。有没有可以帮助解决这个问题的库?

【问题讨论】:

    标签: ios objective-c uinavigationcontroller interactivepopgesture


    【解决方案1】:

    这可以通过 UIView 动画来完成。

    想法是将按钮的 alpha 设置为 0,使其不可见,然后将其设置为值 1 以创建淡入效果。

    self.myButton.alpha = 0;
    
    [[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
        self.myButton.alpha = 1;
    } completion:^(BOOL finished) {
        // Code for completion of animation.
    }];
    

    这可以放在视图控制器的viewDidAppear: 方法中。

    【讨论】:

    • 如果只允许后退按钮弹出就可以了。但是因为 uinavigationcontroller 允许交互式平移手势,所以我需要一种在过渡期间动态更改 alpha 的方法,而不是在过渡完成时。
    • @GeorgeUrick 如果将动画移动到viewWillAppear:,它将在涉及返回的交互式平移手势的过渡期间发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    相关资源
    最近更新 更多