SVProgressHUD не отображается после отображения другого сообщения

Я пытаюсь показать счетчик с SVProgressHUD, и когда я получаю асинхронный ответ от сервера, отклонить этот hud и показать другой hud с сообщением, полученным с сервера.

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    SVProgressHUD.setDefaultStyle(.Custom)
    SVProgressHUD.setForegroundColor(UIColor.whiteColor())
    SVProgressHUD.setBackgroundColor(UIColor.clearColor())
    SVProgressHUD.setDefaultMaskType(SVProgressHUDMaskType.Clear)
    SVProgressHUD.show()
    loadData()

}

private func loadData() {
    ApiService.getData { (succeed, message) -> () in
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            self.dismissHud()
        })
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            SVProgressHUD.showInfoWithStatus("I can't see this")
        })
}

Если я удаляю код в viewDidAppear, который показывает HUD, я вижу сообщение. Есть идеи? Спасибо

2 ответа

Решение

Две вещи не так, во-первых, зачем отправлять в один и тот же поток дважды? и во-вторых, если вы хотите просто показать HUD, не отклоняйте его.

SVProgressHUD.showInfoWithStatus будет скрывать сообщение через некоторое время.
Причина, по которой вы не видите второй HUD, заключается в том, что он все еще удаляет первый. Поскольку вы просто хотите обновить, не звоните в отставку.

У меня есть изменения FadeInAnimationDuration а также FadeoutAnimationDuration в 0.0 и это прекрасно работает для меня. Я использую HUD, как это:

Чтобы показать HUD:

func showActivityLoader() {

            dispatch_async(dispatch_get_main_queue(), {

            SVProgressHUD.setFadeInAnimationDuration(0.0)
            SVProgressHUD.setFadeOutAnimationDuration(0.0)
            SVProgressHUD.setDefaultMaskType(SVProgressHUDMaskType.Clear)
            SVProgressHUD.show()

            })
    }

Чтобы скрыть HUD:

func dismissActivityLoader() {

            dispatch_async(dispatch_get_main_queue(), { 

                SVProgressHUD.dismiss()
            })
    }
Другие вопросы по тегам