【发布时间】:2015-05-10 16:15:39
【问题描述】:
我正在尝试创建一个 IOS 应用程序并在按下某些按钮时翻转两个视图。我找到了翻转动画,但我希望翻转在翻转 90° 时将内容更改为新视图,而不是在动画完成时。这是我的功能:
func animationFlip(fromView:UIView, toView:UIView, animationTime:Float)
{
UIView.animateWithDuration(NSTimeInterval(animationTime), animations: {
UIView.setAnimationTransition(UIViewAnimationTransition.FlipFromRight, forView: fromView, cache: true)
},completion:{completion in
UIView.animateWithDuration(NSTimeInterval(animationTime), animations: { () -> Void in
fromView.hidden = true;
toView.hidden = false;
UIView.setAnimationTransition(UIViewAnimationTransition.FlipFromRight, forView: toView, cache: true)
})
})
}
我发现这段代码似乎可以解决问题,但它是用 obj-c 编写的。怎么翻译成swift?
[UIView transitionFromView:viewToReplace
toView:replacementView
duration:1
options:UIViewAnimationOptionTransitionFlipFromBottom
completion:nil];
提前致谢!
【问题讨论】:
-
为什么需要有人将单个方法翻译成 Swift?只需输入“UIView.transition....”,该方法将自动为您完成。
-
哦不知道这么简单 :) 我试过了,但它颠覆了我的整个视野。我的常规视图中有一个视图容器,它只是我想要翻转的部分。你知道怎么解决吗?
-
为了避免翻转整个视图,您需要使用另一个视图来包含您正在转换的两个视图。见stackoverflow.com/a/9524837/2466193。
-
感谢@AliBeadle。我的主视图控制器中有三个容器视图,我可以在我的 ViewController.swift 中访问这些视图来创建动画。但是现在我在 main 中有一个 Container 视图,其中包含所有三个视图,我无法在我的 swift 代码 (ViewControll.swift) 中处理它们。我试图按 ctrl-click 并将它们拖到 swift-code 但它不起作用。你知道我该如何解决吗?
-
@FidanBytyqi 我不明白这个问题。我建议将其作为一个单独的问题发布,并提供更多解释。
标签: ios xcode swift animation uiview