ios – 是否有任何用于UIView的viewDidAppear方法(不是UIViewController)?

ios – 是否有任何用于UIView的viewDidAppear方法(不是UIViewController)?,第1张

概述我需要了解UIView何时出现在屏幕上,所以我需要一个viewDidAppear方法的类比. 我找到了一个UIView生命周期: > willMoveToSuperview > invalidateIntrinsicContentSize > didMoveToSuperview > awakeFromNib > willMoveToWindow > needsUpdateConstraints 我需要了解UIVIEw何时出现在屏幕上,所以我需要一个vIEwDIDAppear方法的类比.

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

> willMovetoSupervIEw
> invalIDateIntrinsicContentSize
> dIDMovetoSupervIEw
> awakeFromNib
> willMovetoWindow
> needsUpdateConstraints
> dIDMovetoWindow
> setNeedsLayout
> updateConstraints
> layoutSubvIEws
> drawRect

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

解决方法 在UIVIEw中没有vIEwDIDAppear.您可以覆盖func drawRect来执行UIVIEw继承的VIEw所需的任何UI更改.

SIDeNote – 如果您希望稍后更新drawrect,请调用setNeedsdisplay. setNeedsdisplay不会立即调用drawRect,而是将接收者的整个边界矩形标记为需要重绘.

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

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

> – (voID)dIDMovetoSupervIEw – 在视图后立即发送插入到视图层次结构中.> – (voID)dIDMovetoWindow – 在视图获取后立即发送窗口属性集.> – (voID)willMovetoSupervIEw:(UIVIEw *)newSupervIEw – 发送在视图被添加为另一个视图的子视图之前;从中移除视图时,newSupervIEw可能为nil上海华.> – (voID)willMovetoWindow:(UIWindow *)newWindow – 立即发送在视图(或其超级视图)添加到窗口之前;新窗户从窗口中删除视图时可能为nil.

总结

以上是内存溢出为你收集整理的ios – 是否有任何用于UIView的viewDidAppear方法(不是UIViewController)?全部内容,希望文章能够帮你解决ios – 是否有任何用于UIView的viewDidAppear方法(不是UIViewController)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存