Instead of checking to register with ancestor after the runloop where the raster view moves to superview, use a notification-based approach which is more robust and doesn't wait until the next runloop to regenerate the image.