UIView - How to get notified when the view is loaded?

依然范特西╮ 提交于 2019-11-26 10:07:01

问题


Is there anything similar to the viewDidLoad of UIViewController for a UIView??? I need to be notified as soon as a UIView has loaded (Subclass of UIView), and perform some actions.


回答1:


Depending on what kind of actions you need to perform, there are several techniques:

  1. -(id)initWithFrame:(CGRect)frame - UIView's designated initializer; always sent to a UIView to initialize it, unless the view is loaded from a nib;
  2. -(id)initWithCoder:(NSCoder *)coder - always sent to initialize a UIView whenever the view is loaded from a nib;
  3. -(void)awakeFromNib - sent after all the objects in the nib are initialized and connected; applicable only if you load the object from a nib; you must call super;
  4. -(void)willMoveToSuperview:(UIView *)newSuperview - sent immediately before the view is added as a subview to another view; newSuperview may be nil when you remove the view from its superview;
  5. -(void)willMoveToWindow:(UIWindow *)newWindow - sent immediately before the view (or its superview) is added to a window; newWindow may be nil when you remove the view from a window;
  6. -(void)didMoveToSuperview - sent immediately after the view is inserted into a view hierarchy;
  7. -(void)didMoveToWindow - sent immediately after the view gets its window property set. -

Basically, you can choose to perform your actions during initialization (1 & 2), after loading from a nib (3), before insertion into a view hierarchy (4 & 5) and after that (6 & 7).



来源:https://stackoverflow.com/questions/4501974/uiview-how-to-get-notified-when-the-view-is-loaded

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!