gpt4 book ai didi

ios - UIView(不是 UIViewController)是否有任何 viewDidAppear 方法?

转载 作者:可可西里 更新时间:2023-11-01 17:12:17 25 4
gpt4 key购买 nike

我需要了解 UIView 何时出现在屏幕上,因此我需要 viewDidAppear 方法的模拟。

我找到了一个 UIView 生命周期:

  1. willMoveToSuperview
  2. 使内在内容大小无效
  3. didMoveToSuperview
  4. 从 Nib 醒来
  5. 将移动到窗口
  6. 需要更新约束
  7. didMoveToWindow
  8. 设置需求布局
  9. 更新约束
  10. 布局 subview
  11. 绘制矩形

我尝试了所有这些方法,但我没有得到答案。

最佳答案

不,UIView 中没有viewDidAppear。您可以覆盖 func drawRect 以在 UIView 继承的 View 上执行您需要的任何 UI 更改。

旁注 - 如果您想让 drawrect 稍后更新,请调用 setNeedsDisplaysetNeedsDisplay不会立即调用 drawRect,而是将接收器的整个边界矩形标记为需要重绘。

换句话说 - 你永远不应该自己调用 drawRect。相反,您告诉系统需要使用 setNeedsDisplay 方法完成绘制,该方法将 View 标记为脏。然后在下一个更新周期调用子类的 drawRect 方法。

根据 OP(@Alexander) 的查询,他只需要设置一些变量,因此建议使用以下任何覆盖函数,具体取决于需要执行的操作

  • -(void)didMoveToSuperview - 在 View 完成后立即发送插入到 View 层次结构中。

  • -(void)didMoveToWindow - 在 View 获取其后立即发送窗口属性集。

  • -(void)willMoveToSuperview:(UIView *)newSuperview - 已发送在 View 作为 subview 添加到另一个 View 之前;newSuperview 当你从它的 View 中移除 View 时可能为 nil super View 。

  • -(void)willMoveToWindow:(UIWindow *)newWindow - 立即发送在将 View (或其父 View )添加到窗口之前; 新窗口当您从窗口中删除 View 时可能为零。

关于ios - UIView(不是 UIViewController)是否有任何 viewDidAppear 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53809735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com