How to make the selected center row in a wheel picker tappable?
23:14 24 May 2026

I want to replicate a wheel picker like the default iOS date wheel picker, where the selected center row is tappable to accept keyboard numeric inputs. Dragging on the center row should still trigger the default wheel picker behavior.

Default iOS date wheel picker

I've tried making the list elements Buttons, but it appears the wheel picker ignores all custom gestures. I then tried adding a transparent tappable overlay sized and positioned to the center row, but then drag gestures on the wheel picker behind the overlay are impossible. I read about workarounds with custom Binding to trigger side effects upon set, but I need my callback to fire upon tap, not selection change. I also tried some weird hacks with simultaneousGesture and overriding UIView.hitTest, which didn't work.

The only way I can think of to achieve this is recreating the entire wheel picker from scratch. I'd strongly like to avoid this if possible.

How can I make a wheel picker whose selected center row is tappable?

swift