Переход изображения UIButton с одного изображения на другое

Я новичок в разработке iOS и использую Swift как мой язык выбора. Я разрабатываю простую маленькую программу для моего сына, которая отображает изображения животных на UIButtons, и когда он выбирает правильный, все кнопки загружают новые изображения, и он просит найти другое животное.

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

btnItem.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) 

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

Я нашел много возможностей для переходов на UIViews и многого, что связано с постоянным анимационным изображением кнопок, но ничего для переходов, таких как растворение или прокрутка слева направо или что-то еще.

Этот вопрос о SO почти такой же, как у меня, но ответ использует Objective-C.

Итак, длинный рассказ, есть ли способ перехода изображения UIButton от одного к другому в Swift?

Спасибо за ваше время заранее.

UIButton является подклассом UIView, поэтому вы можете использовать UIView.animateWithDuration с помощью кнопки. Например, вы можете сказать что-то вроде:

 @IBAction func buttonPressed(sender: UIButton) { UIView.transitionWithView(sender, duration: 1.5, options: .TransitionFlipFromRight, animations: { sender.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) }, completion: nil) } 

Это приведет к нажатию кнопки для переключения с новым изображением.

Если вы хотите, чтобы анимация из другого примера (fade out / in), вы можете сказать:

 @IBAction func buttonPressed(sender: UIButton) { UIView.animateWithDuration(0.5, animations: { sender.alpha = 0.0 }, completion:{(finished) in sender.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) UIView.animateWithDuration(0.5,animations:{ sender.alpha = 1.0 },completion:nil) }) } 

Вы также можете сделать крест, как это:

 @IBAction func buttonPressed(sender: UIButton) { UIView.transitionWithView(sender, duration: 1.5, options: .TransitionCrossDissolve, animations: { sender.setImage(UIImage(named: arrItems[intItemCounter]), forState: .Normal) }, completion: nil) } 
  • Растянуть фоновое изображение для UIButton
  • Включение UIButton с использованием Reactive Cocoa RACSignal
  • Добавление замыкания в качестве цели в UIButton
  • ImageIO: CGImageRead_mapData 'open' failed error = 2
  • iOS: изменение размера UIButton в соответствии с длиной текста
  • Почему консоль в Xcode не печатает свойство объекта с использованием точечной нотации?
  • Показать название по вертикали в UIButton?
  • Неправильный тег UIButton для распознавателя жестов
  • как изменить цвет фона с закругленным прямоугольником UIbutton
  • Как добавить кнопку в правой части панели инструментов?
  • Как изменить изображение UIButton в Swift
  • Давайте будем гением компьютера.