我需要了解UIView何时出现在屏幕上,所以我需要一个与viewDidAppear方法类似的东西。
我找到了一个UIView生命周期:
我尝试了所有这些方法,但没有得到答案。
答案 0 :(得分:5)
在viewDidAppear
中没有UIView
。您可以覆盖功能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
-立即发送
在将视图(或其父视图)添加到窗口之前; newWindow
当您从窗口中删除视图时,它可能为零。
答案 1 :(得分:1)
看,viewDidAppear
是UIViewController
的方法,它表示ViewController的view
确实出现的时刻,并允许您声明应该发生的情况。
UIView
没有这样的方法。这来自MVC模式:在这种情况下,控制器是UIViewController
,它控制更改,动作等,而view
就是控制器显示的内容。