一次又一次地更新UIVIew

igu*_*222 1 iphone uiview

我正在制作一个简单的iPhone应用程序,其唯一的功能是永远更新UIView(直到它退出).

我在applicationDidFinishLaunching和viewDidLoad中试过这个:

while(1) {  
    // update view here  
}

但这不起作用 - 应用程序永远不会完成加载.我确信有一个简单的解决方案,我只是不知道它是什么.

另外:理想情况下,这个过程应该消耗很少的资源.

mah*_*udz 6

你不能有这样的while (1)声明,因为它不允许viewDidLoad返回,你的应用程序永远不会得到任何其他调用,如点击处理,屏幕绘制更新等.

在viewDidLoad中,使用以下命令设置计时器任务:

updateTimer = [NSTimer scheduledTimerWithTimeInterval: kUpdateTimeInterval target:self selector:@selector(updateView) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)

并且有一个叫做updateView实际更新的方法.而不是updateView你也可以使用setNeedsDisplay它来触发你的视图类的-drawRect方法,并在那里进行实际的绘制.

现在最终发生的是你的viewDidLoad将设置一个重复任务,并且在每个kUpdateInterval中,你的视图都会被更新.