Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tapping on cell during scroll view bounce highlights cell but does not select it #2460

Closed
lilyball opened this issue Sep 27, 2020 · 6 comments

Comments

@lilyball
Copy link

When I swipe the article list, if I then try and tap on an article during the bounce, it highlights the cell while my finger is touching the screen but doesn’t actually select it, so the result of tapping is for the cell to highlight momentarily and then revert back to the previously-selected cell. I can even hold my finger down for a moment and it stays highlighted, but then reverts when I release, as long as I didn’t hold it down long enough to trigger the contextual menu.

This is confusing and annoying. Either it should select the article despite bouncing (this is my preference), or it should avoid highlighting the cell if it’s not going to go ahead and select it.

Curiously, this bug only triggers if my scroll gesture ends before the article list starts bouncing. Which is to say, it has to be in the state where it’s inertial scrolling without dragging. This makes some sense, as when it’s inertial scrolling like this a tap doesn’t select anything it just stops the scroll, but it also doesn’t highlight the cell when stopping the scroll. It’s only when it’s bouncing after the inertial scroll that the tap highlights the cell without selecting. And really, it shouldn’t matter if I dragged into the bounce or if it was inertial scrolling before bouncing, either way tapping during the bounce should select the article.

Reproduced on iOS 14.0.1 with NNW 5.0.3 (Build 50)

@vincode-io
Copy link
Member

This is the default UITableView highlighting behavior. You can see it in action on Notes where the selection briefly flashes gray. Interestingly, they seem to have overridden this behavior Mail, probably because it highlights blue and is more noticeable.

Changing VibrantTableViewCell.setHighlighted to an empty implementation is all we need to do to defeat the default UITableView highlighting behavior.

@brentsimmons Should we change this or stick with the default behavior?

@lilyball
Copy link
Author

I just tested in Notes and tapping during the bounce actually does select the note. Press and hold for a moment shows the grey selection and doesn’t select, but a normal quick tap does.

@vincode-io
Copy link
Member

I must be doing something wrong. I can't get either Mail or Notes to select while the scroll view is bouncing.

@lilyball
Copy link
Author

Mail isn’t doing it for me, but Notes is. Also neither one of them have NNW’s behavior of highlighting immediately on touch down even if I’m attempting to scroll (NNW is somewhat inconsistent here but usually when I touch down it highlights the cell (and unhighlights the selected one) immediately even if I’m about to scroll).

If it makes a difference, I’m testing on iPad. It’s entirely possible iPhone has different behavior.

Also NNW will select the article if I drag into the bounce area and let go and then tap an article, but Mail doesn’t select anything in that scenario.

@vincode-io
Copy link
Member

I'm able to reproduce with some consistency the highlighting immediately on touch down with Mail. See the below video.

RPReplay_Final1601267633.mov.zip

Are you sure that this isn't a standard iOS behavior that you are only noticing in NetNewsWire because of the custom selection color? We're just using a plain old UITableView.

@vincode-io
Copy link
Member

I'm closing this since I think it is normal iOS system behavior. @lilyball if you have more to add, we can reopen and investigate further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants