我尝试使用setNeedsDisplay,但这非常取决于系统是否正确刷新。目前我每次都删除并添加子视图,因此强制显示最新内容。代码有效,但缺乏优雅。
[myView removeFromSuperview];
[myView release];
myView = [[MyView alloc] initWithFrame:CGRectMake(0.0, MY_VIEW_Y, 320.0, MY_VIEW_H)];
[self.view addSubview:myView];
//[self.myView setNeedsDisplay];
[self.view bringSubviewToFront: myView];
答案 0 :(得分:2)
您的视图应在下一个绘图周期重新绘制。这不会发生,或者这对你来说太慢了? ... ...:你需要多快重绘一次,以及在调用setNeedsDisplay和drawRect被调用之间你看到了什么延迟?
如果您需要更精确地控制绘图,您可能需要使用CAEAGLLayer支持的视图,在这种情况下,它从openGL运行并且setNeedsDisplay无效。