If view already hidden in 'showViewFromDirection:'methods, do nothing

We don't want to run the hide animation if the view is already hidden.
Update the frame on the current iteration of the run loop

If the duration of the animation is 0, we want to update the view's
frame immediately.