Разработка под iOS с помощью Swift 2 - Анимации

Анимация - важная часть любого приложения, поскольку она привлекает внимание пользователя к приложению. Анимация - это просто набор изображений, которые повторяются с высокой скоростью. Это также отличает ваше приложение от других.

Создание анимационного проекта - Kitty Animation

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

В этом разделе мы будем использовать следующие изображения.

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

(Если вы не хотите использовать эти изображения, найдите любой gif и конвертируйте его в изображение онлайн, используя какой-нибудь конвертер gif в изображения.)

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

imageView.image = UIImage(named: "frame_0_delay-0.1s.gif") 
// frame_0_delay-0.1s.gif, is the name of image

Вот как мы программно назначаем изображение представлению изображения. Теперь вид должен выглядеть следующим образом -

Первое представление появится, когда мы запустим приложение. Когда мы нажимаем кнопку «Анимировать», появляется изображение.

Это не анимация, а просто изображение. Теперь создадим анимацию -

Добавьте переменную под выходом изображения: var counter = 1.

Обратите внимание, что наши изображения имеют общее имя и отличается только один символ. Измените код вашей анимированной кнопки, как показано ниже -

@IBAction func animatePressed(_ sender: Any) { 
   imageView.image = UIImage(named: "frame_\(counter)_delay-0.1s.gif") 
   counter += 1 
   if counter == 9 { 
      counter = 0 
   } 
}

Теперь, когда вы нажимаете animateкнопка, изображение меняется каждый раз. Следующим шагом будет создание следующего -

  • Создайте переменную - isAnimating и присвоить ему значение False.

  • Создайте переменную таймера и назначьте Timer() функция к нему.

После выполнения двух вышеуказанных шагов создайте функцию анимации и вставьте следующий код.

func animate() { 
   imageView.image = UIImage(named: "frame_\(counter)_delay-s.gif") 
   counter += 1 
   if counter == 9 { 
      counter = 0 
   } 
}

Где counter - это наша переменная счетчика, которую мы создали в предыдущем файле. Теперь внутри функции кнопки анимации добавьте следующий код -

if isAnimating { 
   timer.invalidate() 
   isAnimating = false 
} else { 
   timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: 
   #selector(ViewController.animate), userInfo: nil, repeats: true) 
   isAnimating = true 
}

Попробуйте запустить приложение и мы увидим, что на вашем устройстве запускается анимация.

Challenge - Добавьте кнопку остановки, которая остановит анимацию.