首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IOS 5 SetNeedsDisplayInRect导致全屏失效

IOS 5 SetNeedsDisplayInRect导致全屏失效
EN

Stack Overflow用户
提问于 2011-12-12 09:52:42
回答 1查看 871关注 0票数 2

我在IOS5中注意到,当第一次调用SetNeedsDisplayInRect时,它会导致设备刷新全屏。这与以前的IOS版本不同。

在我正在开发的应用程序中,我有一个需要绘制的对象数组(大部分是矩形,具有不同的行大小)。如果我只想重绘几个矩形,我会将对象添加到一个“更新”-Array中,并调用SetNeedsDisplayInRect来使矩形的区域失效。

在我的drawRect-方法中,我确定如下所示,要么绘制完整的对象数组,要么只绘制“更新-数组”:

代码语言:javascript
运行
复制
BOOL boolDrawFullScreen = CGRectEqualToRect(rect, self.frame);

if (boolDrawFullScreen)
//draw all the objects
else
//draw just the objects within the update-array

在我用IOS5测试它之前,它一直工作得很好。实际上,它仍然有效,但不是第一次调用SetNeedsDisplayInRect:-> CGRectEqualToRect返回的总是肯定的。

那是为什么?我做错什么了?

如有任何建议,敬请见谅!谢谢

汤姆

EN

回答 1

Stack Overflow用户

发布于 2012-03-09 01:13:40

这种行为记录在这里中的QA1708中,提高了iOS上的图像绘制性能。

请注意,由于iPhone/iPod /iPad更新屏幕的方式,如果您调用-setNeedsDisplayInRect:或-setNeedsDisplay:,整个视图将被重新绘制。

因此,如果您有一个应该独立于屏幕其余部分更新的屏幕子视图,那么您似乎想要使用一个子视图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8472500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档