The delay could be the delay incurred in order to detect which subview you have touched.
When you touch any where in your window in your app, the app's window calls hitTest:withEvent:
method on the top-most view in the view hierarchy, which recursively calls hitTest:withEvent:
for its subviews to finally detect the view that actually receives and handles the touch event. So basically the more number of subview in your view controller, the more delay it will introduce for the actual view to respond. The recursive calls to hitTest:withEvent:
return a bit delayed, that's why you are seeing the delay. Removing your parent view controller will not add much of a delay, because you reduce the number of subviews for the view controller. Also when there are more scroll views (or more subviews in general) involved you give the UIResponder
to traverse through more subviews to return the view that handles the touch event.