У меня есть UIView («content»), представляющий собой белый вид с большой красной точкой.viewDidAppear, но также и когда приложение возвращается с фона
Когда приложение запускается, я хочу, чтобы точка исчезла (всего полсекунды).
Всякий раз, когда эта точка зрения появляется снова (так, пользователь был на каком-то другом экране и возвращается к этому экрану), я хочу, чтобы точка стираться в.
Нет проблем до сих пор
override func viewDidAppear(animated: Bool)
{
content.fadeIn()
}
Однако всякий раз, когда приложение переходит в фоновый режим, когда пользователь вводит его на передний план (при условии, что вид показывает) Я хочу, чтобы это выгорает. Я делаю это
func weAreActive(notification: NSNotification) {content.fadeIn()}
func weAreNotActive(notification: NSNotification) {content.alpha = 0;}
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
NSNotificationCenter.defaultCenter().addObserver(
self, selector: #selector(weAreActive(_:)),
name: UIApplicationDidBecomeActiveNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(
self, selector: #selector(weAreNotActive(_:)),
name: UIApplicationDidEnterBackgroundNotification, object: nil)
}
override func viewDidDisappear(animated: Bool)
{
super.viewDidDisappear(animated)
NSNotificationCenter.defaultCenter().removeObserver(self)
}
Первый выпуск: Меня беспокоит использование viewWillAppear/viewDidDisappear пары для регистрации/отмены регистрации. Я ошибаюсь? Должен ли я использовать другую пару - возможно, viewDidAppear/somethingElse? Или?
Второго выпуск: Я беспокоюсь о том, как viewDidAppear
и «weAreActive` срабатывает одновременно (возможно, когда приложение первое запускает, например)
кажется безвкусным. Есть ли лучший способ поиска «этот взгляд действительно появляется» с причинами, включая все запуск, пробуждение и обычный viewDidAppear?
Я бы предпочел вместо этого 'viewDidAppear' и' viewWillDisappear'. На самом деле нет лучших событий. В большинстве случаев вам не нужно менять пользовательский интерфейс, когда вы возвращаетесь с фона. Пользователи обычно хотят работать как можно быстрее, и иногда они могут видеть скриншот предыдущего пользовательского интерфейса, принятого системой, поэтому анимация не является хорошим решением. – Sulthan
Привет @Sulthan, спасибо, в чем причина (ы), которую вы предпочитаете 'viewDidAppear' и' viewWillDisappear' для регистрации/незарегистрирования? – Fattie
Для этого уведомления это, вероятно, не имеет значения, но обычно я не хочу получать уведомления, когда представление появляется или исчезает, поэтому я бы предпочел 'viewDidAppear'. – Sulthan