【发布时间】:2014-12-13 22:22:48
【问题描述】:
我有一个小的设置,我有一个 MPMoviePlayerController 设置作为视频背景。我试图让它在更新/更改时平稳过渡。这是我当前的代码。顺便说一句,newBackground.view.alpha 最初是 0。
let oldBackground = currentBackground
self.view.insertSubview(newBackground.view, aboveSubview: oldBackground.view)
UIView.animateWithDuration(1.5 as NSTimeInterval, animations: {
newBackground.view.alpha = 1
}, completion: {
finished in
oldBackground.view.removeFromSuperview()
println("The subview should be removed now")
})
执行此操作时,oldBackground.view 会在 newBackground 开始淡入之前立即被删除。然而,println 发生在动画完成后。我不明白为什么 removeFromSuperview 会立即发生,但 println 会在我期望的时候发生。如果我删除 oldBackground.view.removeFromSuperview(),动画会淡入并看起来很好(但视图显然没有被删除,它只是坐在 newBackground 后面)。
编辑:奇怪的是,它似乎在模拟器中按预期工作。在我的 iPhone 6 Plus 上运行每次都会给我带来问题。我已经从 Xcode 卸载并重新运行它,但问题仍然存在。
如果有人对我有任何建议,我会很高兴。谢谢。
【问题讨论】:
-
这么长的镜头,我只想在评论中说:旧视频还在播放还是在过渡时就结束了?您是否使用相同的电影播放器控制器实例?您是要淡出还是将旧版本的 alpha 设置为 0?
-
这可能与iOS 8.1.2有关吗?在两个不同的物理 iPhone(iOS 8.1.2 上的 6 和 6 Plus)上进行测试会导致问题,但它在模拟器设备 (8.1) 上运行良好。
标签: ios animation swift jquery-animate