UIView - 加载视图时如何收到通知?
对于 UIView
来说,是否有类似于 UIViewController 的 viewDidLoad
的东西??? 我需要在 UIView
加载(UIView
的子类)后立即收到通知,并执行一些操作。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据您需要执行的操作类型,有几种技术:
-(id)initWithFrame:(CGRect)frame
- UIView 的指定初始化器;总是发送到 UIView 来初始化它,除非
视图是从笔尖加载的;
-(id)initWithCoder:(NSCoder *)coder
- 每当从笔尖加载视图时,总是发送以初始化 UIView;-(void)awakeFromNib
- 在nib中的所有对象初始化并连接后发送;仅当您从笔尖加载对象时才适用;你必须调用 super;-(void)willMoveToSuperview:(UIView *)newSuperview
- 在视图作为子视图添加到另一个视图之前立即发送;当您从其超级视图中删除视图时,newSuperview
可能为零;-(void)willMoveToWindow:(UIWindow *)newWindow
- 在视图(或其超级视图)添加到窗口之前立即发送;当您从窗口中删除视图时,newWindow
可能为零;-(void)didMoveToSuperview
- 在视图插入视图层次结构后立即发送;-(void)didMoveToWindow
- 在视图获取其窗口属性设置后立即发送。 -基本上,您可以选择在初始化期间(1 和 2)、从笔尖加载之后(3)、插入视图层次结构之前(4 和 5)以及之后(6 和 7)执行操作。
Depending on what kind of actions you need to perform, there are several techniques:
-(id)initWithFrame:(CGRect)frame
- UIView's designatedinitializer; always sent to a UIView to initialize it, unless the
view is loaded from a nib;
-(id)initWithCoder:(NSCoder *)coder
- always sent to initialize a UIView whenever the view is loaded from a nib;-(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;-(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;-(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;-(void)didMoveToSuperview
- sent immediately after the view is inserted into a view hierarchy;-(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).