I have a function that draws a rectangle. If called within drawRect image is drawn perfectly. If I call the function directly it doesn't draw the rect. When I searched I found that we need to setNeedsDisplay
to Yes. But still it doesn't work.
问问题
397 次
2 回答
2
drawRect:
只有当系统调用您的方法时,您才能绘制到您的窗口。你不应该直接调用它。系统将在调用之前激活图形上下文,drawRect:
并在调用之前和之后执行各种管理功能。
要显式请求重绘整个窗口,请调用:
[view setNeedsDisplay:YES];
这将导致您的drawRect:
方法在下一个事件循环中被调用。
该文档详细介绍了所有这些:
于 2013-09-09T12:58:05.737 回答
1
在此类问题中,最好的方法是使用布尔标志。drawRect:
然后仅在设置标志时调用内部函数。
现在,当您需要绘制图像时,将标志值设置为 true,然后调用[view setNeedsDisplay:YES];
任务完成后,如果需要在 if 语句中将标志更改为 false。
于 2013-09-10T05:12:05.377 回答