UIView(不是 UIViewController)是否有任何 viewDidAppear 方法?
Is there any viewDidAppear method for UIView (not UIViewController)?
我需要了解 UIView 何时出现在屏幕上,因此我需要 viewDidAppear 方法的模拟。
我找到了一个 UIView 生命周期:
- willMoveToSuperview
- invalidateIntrinsicContentSize
- didMoveToSuperview
- awakeFromNib
- 将移动到窗口
- 需要更新约束
- didMoveToWindow
- setNeedsLayout
- 更新约束
- 布局子视图
- 绘制矩形
我尝试了所有这些方法,但我没有得到答案。
不 UIView
中没有 viewDidAppear
。您可以重写 func drawRect
以对 UIView
继承视图进行任何 UI 更改。
SideNote - 如果您希望 get drawrect
稍后更新,请致电 setNeedsDisplay
。 setNeedsDisplay
不会立即调用drawRect
,而是将接收者的整个边界矩形标记为需要重绘。
换句话说 - 你永远不应该自己调用 drawRect。相反,您告诉系统需要使用 setNeedsDisplay 方法完成绘制,该方法将视图标记为脏。然后在下一个更新周期调用子类的 drawRect 方法。
根据 OP(@Alexander) 的查询,他只需要设置一些变量,因此建议使用以下任何覆盖函数,具体取决于需要执行的操作
-(void)didMoveToSuperview
- 观看后立即发送
插入到视图层次结构中。
-(void)didMoveToWindow
- 在视图获取其后立即发送
window 属性 集.
-(void)willMoveToSuperview:(UIView *)newSuperview
- 已发送
在视图作为子视图添加到另一个视图之前;
newSuperview
当你从它的视图中移除视图时可能为 nil
superview.
-(void)willMoveToWindow:(UIWindow *)newWindow
- 立即发送
在将视图(或其父视图)添加到 window 之前; newWindow
当您从 window.
中删除视图时可能为零
看,viewDidAppear
是 UIViewController
的方法,代表 ViewController 的 view
确实出现的时刻,并允许您声明应该发生什么。
UIView
没有这样的方法。这来自 MVC 模式:在这种情况下,控制器是 UIViewController
,它控制更改、操作等,而 view
正是控制器显示的内容。
我需要了解 UIView 何时出现在屏幕上,因此我需要 viewDidAppear 方法的模拟。
我找到了一个 UIView 生命周期:
- willMoveToSuperview
- invalidateIntrinsicContentSize
- didMoveToSuperview
- awakeFromNib
- 将移动到窗口
- 需要更新约束
- didMoveToWindow
- setNeedsLayout
- 更新约束
- 布局子视图
- 绘制矩形
我尝试了所有这些方法,但我没有得到答案。
不 UIView
中没有 viewDidAppear
。您可以重写 func drawRect
以对 UIView
继承视图进行任何 UI 更改。
SideNote - 如果您希望 get drawrect
稍后更新,请致电 setNeedsDisplay
。 setNeedsDisplay
不会立即调用drawRect
,而是将接收者的整个边界矩形标记为需要重绘。
换句话说 - 你永远不应该自己调用 drawRect。相反,您告诉系统需要使用 setNeedsDisplay 方法完成绘制,该方法将视图标记为脏。然后在下一个更新周期调用子类的 drawRect 方法。
根据 OP(@Alexander) 的查询,他只需要设置一些变量,因此建议使用以下任何覆盖函数,具体取决于需要执行的操作
-(void)didMoveToSuperview
- 观看后立即发送 插入到视图层次结构中。-(void)didMoveToWindow
- 在视图获取其后立即发送 window 属性 集.-(void)willMoveToSuperview:(UIView *)newSuperview
- 已发送 在视图作为子视图添加到另一个视图之前;newSuperview
当你从它的视图中移除视图时可能为 nil superview.-(void)willMoveToWindow:(UIWindow *)newWindow
- 立即发送 在将视图(或其父视图)添加到 window 之前;newWindow
当您从 window. 中删除视图时可能为零
看,viewDidAppear
是 UIViewController
的方法,代表 ViewController 的 view
确实出现的时刻,并允许您声明应该发生什么。
UIView
没有这样的方法。这来自 MVC 模式:在这种情况下,控制器是 UIViewController
,它控制更改、操作等,而 view
正是控制器显示的内容。