Подтвердить что ты не робот

Появился UIView?

Мне интересно, есть ли способ получить делегат или что-то еще, когда на экране был показан конкретный UIView?

4b9b3361

Ответ 1

Попробуйте следующее:

– didAddSubview:
– willRemoveSubview:
– willMoveToSuperview:
– didMoveToSuperview
– willMoveToWindow:
– didMoveToWindow
- viewDidAppear:

Ответ 2

Если вы управляете своей логикой непосредственно внутри UIView, используйте:

- didMoveToSuperview

Если вы управляете своей логикой внутри UIViewController, используйте:

- viewDidAppear:(BOOL)animated

Ответ 3

Быстрая версия. Внутри класса UIView просто:

override func willMove(toWindow newWindow: UIWindow?) {
    super.willMove(toWindow: newWindow)

    if newWindow == nil {
        // UIView disappear
    } else {
        // UIView appear
    }
}

Ответ 4

Если вы управляете UIView с помощью UIViewController, вы можете использовать метод -viewDidAppear::

- (void) viewDidAppear:(BOOL) animated {
   //do stuff...
   [super viewDidAppear:animated];
}

Ответ 5

Еще один способ выяснить, когда элемент управления находится на экране, это создать подкласс View или Control и переопределить drawRect...

Тем не менее, он вызывается, когда он нарисован, а не только когда впервые показан. Так что это только иногда, что вы хотите. Это сработало для моего случая. Обязательно позвоните также супер! знак равно