UIView появился? - PullRequest
       5

UIView появился?

34 голосов
/ 21 февраля 2011

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

Ответы [ 5 ]

23 голосов
/ 21 февраля 2011

Попробуйте это:

– didAddSubview:
– willRemoveSubview:
– willMoveToSuperview:
– didMoveToSuperview
– willMoveToWindow:
– didMoveToWindow
- viewDidAppear:
18 голосов
/ 17 мая 2016

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

- didMoveToSuperview

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

- viewDidAppear:(BOOL)animated
14 голосов
/ 04 ноября 2016

Swift версия.Внутри вашего класса UIView просто:

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

    if newWindow == nil {
        // UIView disappear
    } else {
        // UIView appear
    }
}
8 голосов
/ 21 февраля 2011

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

- (void) viewDidAppear:(BOOL) animated {
   //do stuff...
   [super viewDidAppear:animated];
}
0 голосов
/ 17 мая 2016

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...