强制视图重绘

时间:2011-12-01 22:27:47

标签: objective-c

我尝试使用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];

1 个答案:

答案 0 :(得分:2)

您的视图应在下一个绘图周期重新绘制。这不会发生,或者这对你来说太慢了? ... ...:你需要多快重绘一次,以及在调用setNeedsDisplay和drawRect被调用之间你看到了什么延迟?

如果您需要更精确地控制绘图,您可能需要使用CAEAGLLayer支持的视图,在这种情况下,它从openGL运行并且setNeedsDisplay无效。