Ios 在执行多个setneedsdisplayinrect后,找出drawrect中哪些Rect无效

Ios 在执行多个setneedsdisplayinrect后,找出drawrect中哪些Rect无效,ios,drawrect,setneedsdisplayinrect,Ios,Drawrect,Setneedsdisplayinrect,我在画网格状的图像。一些图像会移动,我需要更新显示,但显然,我不想不必要地刷新整个屏幕。我多次使用SetNeedsDisplayInRect,但有时,UIKit似乎会使额外的Rect无效(我从其他来源获得)。我不介意重新绘制这些额外的块,但我需要知道哪些额外的块将被无效 我目前保留了一个需要刷新的矩形数组,但当系统进行额外的刷新时,我会得到一个空正方形,因为我没想到会重新绘制它们 DrawRect有参数,但它是一个包含无效区域的单个矩形。有没有办法确定这些额外的矩形?这是一个有趣的问题。你在哪里

我在画网格状的图像。一些图像会移动,我需要更新显示,但显然,我不想不必要地刷新整个屏幕。我多次使用SetNeedsDisplayInRect,但有时,UIKit似乎会使额外的Rect无效(我从其他来源获得)。我不介意重新绘制这些额外的块,但我需要知道哪些额外的块将被无效

我目前保留了一个需要刷新的矩形数组,但当系统进行额外的刷新时,我会得到一个空正方形,因为我没想到会重新绘制它们


DrawRect有参数,但它是一个包含无效区域的单个矩形。有没有办法确定这些额外的矩形?

这是一个有趣的问题。你在哪里跟踪失效的矩形?您是否可以在视图上覆盖setNeedsDisplayInRect并在那里跟踪它,或者系统是否在该机制之外使Rect无效?我有数组跟踪运动图像,因此如果我只是重新绘制这些项目(以及它们留下的空白方块),我将填充大部分无效项目。偶尔,会出现额外的无效区域(通常在我以正方形或矩形的形式记录到的区域之间)。由于我没有煽动这些区域,我没有记录它们或重新绘制它们,它们显示为空白。从你的问题开始已经有一段时间了。我想知道你(或任何人)采用了什么解决方案。谢谢