use setNeedsDisplayInRect