added new method that also accepts a completion block

@ndonald2 Quick PR for you. Just one question: do you think the completion block should be called before or after `layoutIfNeeded` in the non-animated case?
These are methods on a private subclass so they don't need to be prefixed. Only the actual category methods do.