Better usage of setNeedsDisplay