2017-02-04 13 views
3

Я использовал метод UIView.transition для переключения между двумя видами, но после этого был изменен кадр обоим представлениям.Кадр UIView изменяется после перевертывания

if isFront { 
    UIView.transition(from: frontView, to: behindView, duration: 0.5, options: .transitionFlipFromRight,completion: { (finished) in 
     if finished { 
      self.isFront = false 
     } 
    }) 
} else { 
    UIView .transition(from: behindView, to: frontView, duration: 0.5, options: .transitionFlipFromLeft, completion: { (finished) in 
     if finished { 
      self.isFront = true 
     } 
    }) 
} 

В чем моя ошибка? Спасибо за помощь.

image

ответ

2

я решил такую ​​же проблему. Проблема в том, что, когда мы используем переход перехода из вида A для просмотра B, мы теряем его ограничения.

Решение:

Поместите обе точки зрения (т.е. Frontview и behindView) в parentView и использование:

UIView.transition(with: scroller, duration: 0.5, options: .transitionFlipFromLeft,animations: {() -> Void in}, completion: { _ in }) 

Пример:

@IBAction func FlipButtonAction(_ sender: Any) { 
    if(front){    
     frontView.isHidden = true 
     behindView.isHidden = false 

     UIView.transition(with: parentView, duration: 0.5, options: .transitionFlipFromLeft,animations: {() -> Void in}, completion: { _ in }) 

     print("1") 
    }else{ 
     frontView.isHidden = false 
     behindView.isHidden = true 

     UIView.transition(with: parentView, duration: 0.5, options: .transitionFlipFromLeft,animations: {() -> Void in}, completion: { _ in }) 
     print("2") 

    } 
    front = !front 

} 
+0

Thanx @maddy с грамматикой :) –