I want to mimic the UIScrollView behavior where the current thread RunLoop mode changes to UITrackingRunLoopMode when you drag the scrollView, and back to NSDefaultRunLoopMode when you stop dragging.
I want to do it with my own class, though, dragging around views... Right now I'm using this code
while (_draggingView && [[NSRunLoop currentRunLoop] runMode:UITrackingRunLoopMode beforeDate:[NSDate distantFuture]]);
You can use CFRunLoopStop
to force a run loop to return.
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
CFRunLoopStop(CFRunLoopGetMain());
}