touchesEnded: not triggered on newer iOS when view is inside UIScrollView (was working on iOS 18)

Hi everyone,

I’m facing an issue with touch handling on newer iOS versions.

I have a custom view controller implemented in Objective-C that overrides touchesEnded:. The same code works correctly on iOS 18, but on newer iOS versions (tested on iOS 26), touchesEnded: is no longer being triggered.

Important observations:

touchesBegan: is triggered.

touchesEnded: is NOT triggered.

touchesCancelled: is also NOT triggered.

No code changes were made between iOS 18 and iOS 26. Same code, same sample works fine in iOS18 device but not in iOS26 device

Questions: Has gesture arbitration behavior changed in recent iOS 26 versions when views are inside UIScrollView?

Any clarification on whether this is intended behavior or a regression would be greatly appreciated.

Thank you.

My implementation :

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
   //my own code
    [super touchesBegan:touches withEvent:event];
}

Similar implementation wrt touchesmoved/ended/cancelled.

By removing super call, my code works fine in iOS26 also. But i would want to understand the impact and usage of super call. Is it not recommended to call super in overridden methods of gesture recognizer ?

Hello lokeshpudhari,

Could you possible create a focused test project that replicates the callbacks not triggering, so we can troubleshoot it? If so, please share a link to your test project.

If you're not familiar with preparing a test project, take a look at Creating a test project.

Thank you,

Richard Yeh  Developer Technical Support

touchesEnded: not triggered on newer iOS when view is inside UIScrollView (was working on iOS 18)
 
 
Q