2015-06-30 3 views
0

У меня есть жестом в моем приложении, который при прокручивании меняет текст на экране. Как бы я сделал это, чтобы он выглядел как скользящий к новому тексту, а не просто мгновенно меняя текст?Добавить анимацию, чтобы прокручивать жесты в Swift

+0

zachlul, делает мой ответ имеет смысл ?? –

ответ

0

Вы можете сделать одно: добавьте представление позади своего вида жестов, этот вид должен выглядеть так же, как и вид жестов View (должен иметь один и тот же текст), и один раз после распознавания жестов вывести этот вид перед ваш жест показывает, что у него должен быть старый текст (не обновляйте текст) и обновляйте текстовые тексты вашего жестов, которые он перемещает за вновь добавленным видом, просто измените рамку вновь добавленного представления, чтобы он дал скользящий вид эффекта (измените его width) один раз после завершения анимации вывести этот вид назад в режим жестов и изменить его кадр на прежнее его предыдущее значение.

проверить этот образец:

func handleGesture(sender:UISwipeGestureRecognizer) { 
    //bring background view to front 
    self.view.bringSubviewToFront(self.backGroundView) 
    self.gestureView.userInteractionEnabled = false 

    //capture its initialAutolayout constraint 
    let backgroundViewSpaceConstarint = self.backGroundViewLeftSpaceConstraint.constant 
    UIView.animateWithDuration(2, animations: { [unowned self]() -> Void in 
     self.someRandomValue++ 

     // update text label in gesture view which is behind background View 
     self.gestureViewTextLabel.text = "swiped \(self.someRandomValue) times" 

     //slide backgroundView in required direction by using autolayout 
     self.backGroundViewLeftSpaceConstraint.constant = self.backGroundView.bounds.size.width 
     self.backGroundView.layoutIfNeeded() 
     }) { [unowned self](completion:Bool) -> Void in 
      //after animation complition bring gesture view to the front. 
      self.backgroundTextLabel.text = "swiped \(self.someRandomValue) times" 
      self.gestureView.userInteractionEnabled = true 

      //upadte background view so that it will look the same for next swipe 
      self.backGroundViewLeftSpaceConstraint.constant = backgroundViewSpaceConstarint 
      //send the background view behind gesture view 
      self.view.sendSubviewToBack(self.backGroundView) 
      } 
    } 
Смежные вопросы