UIActivityIndicator добавить AppDelegate - PullRequest
0 голосов
/ 20 апреля 2019

Я хочу запустить UIActivityIndicator при открытии приложения.Как я могу это сделать?Мой код - это то, как я делюсь им там.Я хочу, чтобы этот код работал при открытии Launchscreen.

 @objc func buttonTapped(_ sender: UIButton) {
        let size = CGSize(width: 30, height: 30)
        let selectedIndicatorIndex = sender.tag
        let indicatorType = presentingIndicatorTypes[selectedIndicatorIndex]

        startAnimating(size, message: "Loading...", type: indicatorType, fadeInAnimation: nil)

        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.5) {
            NVActivityIndicatorPresenter.sharedInstance.setMessage("Authenticating...")
        }

        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
            self.stopAnimating(nil)
        }
    }
 for (index, indicatorType) in presentingIndicatorTypes.enumerated() {
            let x = 150
            let y = 250
            let frame = CGRect(x: x, y: y, width: 100, height: 100)
            let activityIndicatorView = NVActivityIndicatorView(frame: frame,
                                                                type: .orbit)
            let animationTypeLabel = UILabel(frame: frame)
            activityIndicatorView.padding = 20
            if indicatorType == NVActivityIndicatorType.orbit {
                activityIndicatorView.padding = 0
            }
            self.view.addSubview(activityIndicatorView)
            self.view.addSubview(animationTypeLabel)
            activityIndicatorView.startAnimating()

            let button: UIButton = UIButton(frame: frame)
            button.tag = index
            #if swift(>=4.2)
            button.addTarget(self,
                             action: #selector(buttonTapped(_:)),
                             for: .touchUpInside)
            #else
            button.addTarget(self,
                             action: #selector(buttonTapped(_:)),
                             for: UIControlEvents.touchUpInside)
            #endif
            self.view.addSubview(button)
        }

1 Ответ

0 голосов
/ 20 апреля 2019

То, что вы пытаетесь достичь, это показать UIActivityIndicator во время запуска экрана, что, к сожалению, НЕ возможно . Если вы хотите создать анимацию на экране запуска, используйте свой первый контроллер представления в качестве заставки и перенаправьте на главный экран, когда анимация на заставке заканчивается.

<ч /> Некоторые идеи:

  • Создайте отдельную страницу загрузки и вызовите ее из didFinishLaunchingWithOptions метода в делегате приложения
  • Добавить индикатор загрузки (может быть любым, что вы хотите) к нему
  • Установите таймер на 2-3 секунды, когда он завершит перенаправление на главный экран

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

<ч /> Удачи:)

...