我想知道是否有一种等效于awakeFromNib的方法。

我的应用程序有2个视图,第二个视图有一个我用来绘制的子类(UIView)。

我使用了一个从awakeFromNib调用的计时器来为图形制作动画。

- (void) awakeFromNib
{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:selfselector:@selector(ReDraw) userInfo:nil repeats:YES];
}

- (void) ReDraw
{
    i++;
    [self setNeedsDisplay];
}


现在,当我回到我的第一个视图并回到该视图时,图形仍处于打开状态(不再调用awakeFromNib)。

当我回到第一个视图时,计时器不会停止。我希望计时器在我返回时停止并在再次访问第二个视图时重新开始绘图。

方法viewdidLoadinitWithFrame:在子类内部不起作用。

最佳答案

在对象的初始化阶段都调用awakeFromNibviewdidLoadinitWithFrame。如果已创建对象,则不会再次调用这些方法。您可以使用视图的setNeedsDisplay方法强制视图绘制自身。

关于iphone - 为什么再次访问 View 时未调用awakeFromNib?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5572166/

10-12 04:20