ios - UIView(不是 UIViewController)是否有任何 viewDidAppear 方法?
问题描述
我需要了解 UIView 何时出现在屏幕上,因此我需要 viewDidAppear 方法的类似物。
我找到了一个 UIView 生命周期:
- willMoveToSuperview
- 无效内在内容大小
- didMoveToSuperview
- 从笔尖醒来
- willMoveToWindow
- 需要更新约束
- didMoveToWindow
- 设置需求布局
- 更新约束
- 布局子视图
- 绘制矩形
我尝试了所有这些方法,但我没有得到答案。
解决方案
不,没有viewDidAppear
。UIView
您可以覆盖 func以对继承的 ViewdrawRect
进行任何所需的 UI 更改。UIView
旁注- 如果您想drawrect
稍后更新,请致电setNeedsDisplay
。setNeedsDisplay
不会立即调用drawRect
,而是将接收者的整个边界矩形标记为需要重绘。
换句话说 - 你永远不应该自己调用 drawRect 。相反,您告诉系统需要使用 setNeedsDisplay 方法进行绘制,该方法将视图标记为脏。然后在下一个更新周期调用子类的 drawRect 方法。
根据来自 OP(@Alexander) 的查询,他只需要设置一些变量,因此建议使用以下任何覆盖函数,具体取决于需要执行的操作
-(void)didMoveToSuperview
- 在视图插入视图层次结构后立即发送。-(void)didMoveToWindow
- 在视图设置其窗口属性后立即发送。-(void)willMoveToSuperview:(UIView *)newSuperview
- 在视图作为子视图添加到另一个视图之前立即发送;newSuperview
当您从其超级视图中删除视图时,可能为零。-(void)willMoveToWindow:(UIWindow *)newWindow
- 在视图(或其父视图)添加到窗口之前立即发送;newWindow
当您从窗口中移除视图时,可能为 nil。
推荐阅读
- angular - 动态嵌套菜单 - 角度材质
- python - sqlite3 到 csv 并下载到桌面
- url - MAMP/WAMP - 在我的所有文件中从真实项目 URL 切换回本地主机
- python - 如何在 Django 中获取 SMTP 服务器响应代码?
- url - 用英文描述主机名/端口/URL
- python - 寻找一种有效的方法来在从其他列的值生成的 pandas 列中生成 dict
- powershell - Powershell 读取类型为 FieldUserValue[] 的 Sharepoint 列表项
- javascript - 将注释添加到完整的日历日和周视图
- android - 无法创建布局资源文件
- reactjs - 调用 Search 函数后如何保留新组件?