2016-01-31 2 views
1

Я использую анимацию, чтобы преобразовать кнопку, когда она нажата, я смог сделать кнопку больше. Тем не менее, я думал, что, используя .Repeat и .Autoreverse, кнопка вернется в нормальное состояние. (масштаб 1.0), но это не так! Возможно, я неправильно понял учебники и вопросы, которые я прочитал относительно .AnimateWithDuration ??.Repeat .AutoReverse не работает

Это код, который я использую:

let button = sender as! UIButton 

    UIView.animateWithDuration(1.0, delay: 0.6, 
     options: [.Repeat, .Autoreverse, .AllowUserInteraction], 
     animations:{ 
     button.transform = CGAffineTransformMakeScale(1.2, 1.2) 
     }, completion: nil) 

В другой вопрос, который я видел, что эта проблема может быть решена путем добавления .AllowUserInteraction, но это не так.

Я не знаю, имеет ли это значение, но этот код заключен в событие касания.

@IBAction func addButtonClicked(sender: AnyObject) {} 

Что может быть здесь? это не так, как вы должны отменить анимацию?

+0

С .Repeat и .Autoreverse кнопка будет «пульсирующей». Код работает, как ожидается, здесь, в тестовом коде. @IBAction func pushButton (отправитель: AnyObject) { let btt = отправитель как! UIButton UIView.animateWithDuration (1,0, задержка: 0.6, опции: [.repeat, .Autoreverse, .AllowUserInteraction], анимации: { btt.transform = CGAffineTransformMakeScale (1.2, 1.2) }, завершение: ноль) } – UlyssesR

+0

Двойная проверка, связана ли кнопка с этой функцией, используйте точку останова, чтобы убедиться, что она ее вызывает. – UlyssesR

+0

@UlyssesR это вызов, потому что кнопка становится больше, когда я нажимаю на нее, но она не возвращается в нормальное состояние. –

ответ

0

В конце анимации вы должны сбросить размер объекта.
.Autoreverse просто «обратный визуальный», но не меняет фактический размер объекта.

Попробуйте это.

@IBAction func prss(sender: AnyObject) { 

    let btt = sender as! UIButton 

    UIView.animateWithDuration(1.0, delay: 0.6, 
     options: [.Autoreverse, .AllowUserInteraction], 
     animations:{ 
      btt.transform = CGAffineTransformMakeScale(5.0, 5.0) 
     }, completion: { (t) -> Void in 
      btt.transform = CGAffineTransformMakeScale(1.0, 1.0) 
    }) 

} 
+0

Вы правы. Я должен был сбросить кнопку с помощью завершения. Спасибо! –

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

  • Нет связанных вопросов^_^