That is, if
[self setNeedsDisplayInRect:rect];
is called, and rect is very carefully calculated for the region that needs to be redrawn, but if our drawRect code doesn’t care about rect and draw everything anyway, can the iOS system still somehow improve the drawing speed? (or possibly improve very little?) This question probably requires somebody who is very familiar with UIKit/CoreGraphics.
There are a few ways the answer could be yes:
drawRect:doesn’t use the rectangle, you might go back to that code later to optimize it. As you’re probably aware, one very good way to do that—if it’s at all possible—is to use the rectangle to decide what you draw. Even if you’re not doing that now, you may do it in the future, and specifying changed rects now means that many fewer things to change then.setNeedsDisplayInRect:to sendsetNeedsDisplay:messages to subviews—and only the subviews whose frames intersect the rect—before callingsuper. (And UIView’s implementation might already do this. You should test it.)