Swift中的翻转动画会翻转整个视图而不是子视图。

3

我需要在两个子视图之间进行切换,我正在使用翻转动画,但它会翻转整个屏幕而不是子视图。这是我用来翻转的代码:

UIView.transitionFromView(frontView, toView: backView, duration: 1, options: UIViewAnimationOptions.TransitionFlipFromRight | UIViewAnimationOptions.ShowHideTransitionViews, completion: nil)

我已经在StoryBoard中创建了frontView和backView,并且backView最初是隐藏的。
请帮我翻转仅子视图。
2个回答

4
这个问题虽然有一些年头,但它仍然可以帮助某些人。如果你想要翻转你的self.view,请使用以下代码: Swift 2
UIView.transitionWithView(self.view, duration: 0.8, options: UIViewAnimationOptions.TransitionFlipFromRight | UIViewAnimationOptions.ShowHideTransitionViews, animations: {
    self.view.addSubview(newView)
}, completion: { finished in
    // HERE you can remove your old view
    oldView.removeFromSuperview()
})

Swift 3, 4, 5

UIView.transition(with: self.view, duration: 0.8, options: [UIView.AnimationOptions.transitionFlipFromRight, UIView.AnimationOptions.showHideTransitionViews], animations: {
    self.view.addSubview(newView)
}, completion: { finished in
    // HERE you can remove your old view
    oldView.removeFromSuperview()
})

4
最终,我找到了解决方法。我们需要将frontView和backView添加到另一个视图(容器)中,而不是self.view,然后容器会翻转。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接