SwiftUI/WatchOS - Picker inside a ScrollView does not work as expected

What I am trying to build

Apple Watch app(written in SwiftUI, targeting watchOS 7 or higher, built with Xcode 14.1)

The Problem

Picker placed inside a ScrollView on an apple watch device does not work as expected

I want to find out how to get the Picker to work as expected, stated below.

Expected behavior

On an iOS simulator, a Picker inside a ScrollView works as expected.

  • If I try scroll interaction on the Picker area, the ScrollView part doesn’t get scrolled and only the Picker gets scrolled.

whereas on the watch simulator Example, 



  • If I try to scroll the Picker by touching the Picker area, the whole ScrollView reacts and moves up and down. And I am not able to control the Picker properly.

The code I wrote is as follows:

ScrollView {
    //..other view elements..
    
    Picker(selection: $currentDay) {
        ForEach(weekDays, id: \.self) {
            Text($0)
        }
    } label: {
        Text("")
    }
    .frame(width: 148,height: 50)
    .pickerStyle(.wheel)
    
   //..other view elements..
}//: ScrollView

Things I have tried

  • putting the Picker inside a VStack/ZStack/HStack
  • giving the Picker fixed frame values / giving other elements inside the ScrollView fixed frame values

Hi @james_ma, have you ever solved it? Stuck on the same issue, right now and would be happy about any hint. Also found several GitHub and StackOverflow questions... All not answered.

SwiftUI/WatchOS - Picker inside a ScrollView does not work as expected
 
 
Q