2015-05-10 72 views
2

我試圖創建一個IOS應用程序並在按下某些按鈕時翻轉兩個視圖。我找到了翻頁動畫,但是我想要翻頁將其翻轉90°時的內容更改爲新視圖,而不是動畫完成時。這是我的功能:swift如何讓兩個UIViews之間的動畫翻轉

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寫的。它如何被翻譯成迅速?

[UIView transitionFromView:viewToReplace 
     toView:replacementView 
     duration:1 
     options:UIViewAnimationOptionTransitionFlipFromBottom 
     completion:nil]; 

在此先感謝!

+2

爲什麼你需要人翻譯一個方法進入迅捷?只需輸入「UIView.transition ....」,該方法會自動爲你完成。 – rdelmar

+0

哦,不知道是這麼簡單:)我試過了,但它翻轉了我的整個視圖。查看並且它只是我想要翻轉的那部分你知道如何解決這個問題嗎? –

+0

爲了避免翻轉整個視圖,你需要使用另一個視圖來包含你正在轉換的兩個視圖,參見http:// stackoverflow .com/a/9524837/2466193。 –

回答

1

在斯威夫特: -

UIView.transitionFromView(viewToReplace, toView: replacementView, duration: 1, options: .TransitionFlipFromBottom, completion: { _ in })