When using an iPhone X with interactivePopGestureRecognizer enabled on a UINavigationController, the left ~30pt of the screen blocks touchesBegan on UIView subclasses, which prevents a UIButton from highlighting.
To reproduce:
1. Push a view controller onto the navigation stack (with interactivePopGestureRecognizer enabled on the navigation controller).
2. Create a button, set unique images (or colors) for UIControlStateNormal and UIControlStateHighlighted, and add to self.view.
3. Position the button close to the left edge of the screen (within ~30pt)
4. Tap the button. The button's selector will execute on touchesEnded, but the button will never highlight.
What's happening:
I subclassed the UIButton and overrode touchesBegan and touchesEnded. On actual touch down, touchesBegan doesn't execute. On touch up, touchesBegan is executed immediately followed by touchedEnded in the same pass of the run loop such that the highlighted UI is never displayed to the user.
Anyone know if this is a reported issue? Anyone know of a workaround? It only appears to be affecting iPhone X (not iPhone 8).