The simplest implementation I've found is BCGenieEffect ( https://github.com/Ciechan/BCGenieEffect ). It is extremely easy to understand README, the actual implementation is just a few lines. Here is an example (found on their README) that shows how to do this simply:
CGRect startRect = CGRectMake(30, 40, 50, 60); [view genieOutTransitionWithDuration:0.7 startRect:startRect startEdge:BCRectEdgeLeft completion:nil];
I just used this in a project and it seems very reliable.
source share