2016-12-13 36 views
1

我的电话看起来是这样的:UIView.transition消失在模拟器但不是在设备

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之内。

回答

0

由于我的按钮在导航栏中,我最终使用了navigationItem.setRightBarButtonItems(buttons, animated: true)。有了这个,动画在模拟器和设备上都渐渐消失了。

1

我有同样的问题,但只是与UIView内的标准UIView。我通过将我隐藏的视图的超视图作为with:参数来修复我的位置。我认为重新阅读这些文档就是你应该这样做的,而且通过传递有问题的视图,这可能只是苹果在10.2版中可能修复的一个方便的bug,但这只是推测。

无论如何,重新写的用我做了什么来解决矿山来说明OP代码:

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