【问题标题】:UIView.transition fades in simulator but not on deviceUIView.transition 在模拟器中淡入淡出,但在设备上却没有
【发布时间】:2016-12-13 22:52:03
【问题描述】:

我的电话看起来像这样:

UIView.transition(with: button, duration: 0.5,
                  options: .transitionCrossDissolve,
                  animations: { button.hidden = false },
                  completion: null)

当我用它来显示一个按钮时,它可以按预期工作,并带有很好的淡入效果。当我用它隐藏时(使用button.hidden = true),它在 iOS 模拟器中再次正常工作,但在设备上 - iPhone 或 iPad - 它只是消失而没有褪色。

我能找到的唯一显着区别是我的设备运行的是 iOS 10.2,但模拟器只有 10.1。 Xcode 没有让我选择下载 10.2 模拟器。

还有什么我可能会遗漏的吗?我应该使用其他动画选项吗?

值得注意的是,我隐藏和显示的按钮位于导航栏中的 UIBarButtonItem 内。

【问题讨论】:

    标签: ios ios-simulator


    【解决方案1】:

    我遇到了同样的问题,但只是在 UIView 中使用了标准 UIView。我通过将我隐藏的视图的超级视图作为with: 参数传递来修复我的问题。我认为重新阅读文档是你应该这样做的,而且它通过传递有问题的视图来工作的事实可能只是苹果可能在 10.2 中修复的一个方便的错误,但这只是猜测。

    无论如何,使用我所做的修复我的代码来重新编写 OP 的代码来说明:

    UIView.transition(with: button.superview!, duration: 0.5,
                      options: .transitionCrossDissolve,
                      animations: { button.hidden = false },
                      completion: null)
    

    【讨论】:

      【解决方案2】:

      由于我的按钮位于导航栏中,因此我最终使用了navigationItem.setRightBarButtonItems(buttons, animated: true)。这样,动画就在模拟器和设备上逐渐淡出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 2016-03-20
        • 2010-11-19
        • 1970-01-01
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多