Как добавить анимацию на экран запуска в iOS 9.3 с помощью Objective c

Как сделать анимированный экран-заставку, как на картинке ниже в iOS 9.3.

3 ответа

Решение

По сути, вы не можете сделать анимированный заставки. Однако вы можете продублировать стартовый экран в раскадровке и сделать его контроллером входа (VC) вашего приложения. Затем, когда представление загружено, вы можете запустить анимацию. В конечном итоге у вас будет "анимированный экран-заставка".

Последовательность прогрессирует так:

Запускается приложение → отображать статический экран запуска → переходить к entry-VC, который не будет виден пользователю, потому что сцены выглядят одинаково → view-entry-VC загружается как анимация.

Таким образом, рассматривайте файл.xib вашего экрана запуска как первый кадр анимированного экрана запуска.

Экран запуска является статическим, и мы не можем выполнять какие-либо операции на экране запуска. Поэтому невозможно отобразить анимацию на экране запуска. но мы можем достичь этого одним способом. Сначала покажите экран статического запуска, а затем загрузите viewcontroller, на этом viewcontroller мы можем показать gif этой анимации. И после завершения анимационного цикла вызовите домашний экран приложения. Пожалуйста, обратитесь к следующему URL для справки. для достижения анимации на заставке

Вы можете проверить следующие ссылки для этого вида анимации:

https://github.com/okmr-d/App-Launching-like-Twitter

http://iosdevtips.co/post/88481653818/twitter-ios-app-bird-zoom-animation

https://github.com/callumboddy/CBZSplashView

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

Шаг 1. Я создал экран запуска с помощью UiImageViews, как показано ниже,

Шаг 2: Я снова создал тот же экран в моем StoryBoard, а также создал файл viewController для того же представления, где я напишу логику для анимации. Я дал название AnimatedlaunchScreenViewController. Код для viewController ниже,

class AnimatedlaunchScreenViewController: UIViewController {

@IBOutlet weak var limezTitleImageView: UIImageView!

@IBOutlet weak var limezRoratingImageViewOutlet: UIImageView!
var timer: Timer?
var timeCount: Int = 0
let animationSeconds: Int = 3
override func viewDidLoad() {
    super.viewDidLoad()
    setTimerAndAnimateLaunchScreen()
}

//MARK: Animating flash Screen
func setTimerAndAnimateLaunchScreen(){
    //Set Timer
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(checkForTimerAndRedirect), userInfo: nil, repeats: true)
    let rotation = CABasicAnimation(keyPath: "transform.rotation")
    rotation.fromValue = 0
    rotation.toValue = 2 * Double.pi
    rotation.duration = 1.1
    rotation.repeatCount = Float.infinity
    self.limezRoratingImageViewOutlet.layer.add(rotation, forKey: "Spin")
}

@objc func checkForTimerAndRedirect(){
    if timeCount == animationSeconds{
        //Redirect to LogIn or HomePage
        timer?.invalidate()
        timer = nil

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        let homeVC = storyboard.instantiateViewController(withIdentifier: "HomePageViewController") as! HomePageViewController
        //Below's navigationController is useful if u want NavigationController
        let navigationController = UINavigationController(rootViewController: homeVC)
        appDelegate.window!.rootViewController = homeVC
    }else{
        //Increment the counter
        timeCount += 1
    }
}

}

Выше я сначала создал розетки, а затем использовал Timer() для периода анимации. По окончании периода времени анимации я перенаправляюсь на Home ViewController.

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

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

  1. Добавьте изображение GIF на контроллере представления или
  2. Добавить видео в контроллер просмотра

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

Другие вопросы по тегам