2016-02-01 2 views
1

Я создаю приложение с некоторой анимацией вниз. Когда я нажимаю кнопку, текст заголовка перемещается вверх, а метка приходит снизу вниз вниз через 3 секунды. Посмотрите на следующий образец изображенияУдалить все анимации для кнопки ios swift

enter image description here

Это оригинальный дизайн. Как только я нажимаю кнопку, анимация кнопки работает нормально. Но если я нажимаю те же анимации предметов, что испортили. Я пытаюсь использовать следующий код.

self.sub_item.layer.removeAllAnimations() 
item.layer.removeAllAnimations() 
self.item.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0) 
self.bottomConstraint.constant = 0 
self.sub_item.hidden = false 

UIView.animateWithDuration(0.25, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { 
    self.bottomConstraint.constant = self.item.frame.height/3.0 
    self.item.contentEdgeInsets = UIEdgeInsetsMake(-self.item.frame.height/3.0, 0, 0, 0) 
    self.view.layoutIfNeeded() 
}, completion: { finish in 
    UIView.animateWithDuration(0.25, delay: 4.0, options:UIViewAnimationOptions.CurveEaseInOut, animations: { 
    self.bottomConstraint.constant = 0 
    self.nitem.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0) 
    self.view.layoutIfNeeded() 
    }, completion: {finish in 
    self.sub_item.hidden = true 
    }) 
}) 

Примечание: Если мой вопрос сбивает с толку, пожалуйста, спрашивайте.

ответ

0

Просто сбросить ограничение, удаляя все анимации, как вы делаете в тапинге кнопки: -

//remove animation and reset constraints 

self.sub_item.layer.removeAllAnimations() 
item.layer.removeAllAnimations() 
self.bottomConstraint.constant = 0 
self.nitem.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0) 
self.view.layoutIfNeeded() 
self.view.setNeedsUpdateConstraints() 
self.view.updateConstraintsIfNeeded() 
self.sub_item.hidden = false 

//start animation 


UIView.animateWithDuration(0.25, delay: 0.0, options: UIViewAnimationOptions.BeginFromCurrentState, animations: { 
    self.bottomConstraint.constant = self.item.frame.height/3.0 
    self.item.contentEdgeInsets = UIEdgeInsetsMake(-self.item.frame.height/3.0, 0, 0, 0) 
    self.view.layoutIfNeeded() 
    }, completion: { finish in 
     UIView.animateWithDuration(0.25, delay: 4.0, options: UIViewAnimationOptions.BeginFromCurrentState, animations: { 
      self.bottomConstraint.constant = 0 
      self.nitem.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0) 
      self.view.layoutIfNeeded() 
      }, completion: {finish in 
      self.sub_item.hidden = true 
     }) 
}) 
+0

Я попробовал этот self.nitem.contentEdgeInsets = UIEdgeInsetsMake (0, 0, 0, 0) не работает. Кроме того, sub_item не работает должным образом, некоторые странные вещи происходят. – Amsheer

+0

Я обновил вариант анимации ... Проверьте с этим – Vizllx

+0

и отредактировал также код сброса. – Vizllx

Смежные вопросы