1

我用以下方式设计了一个选择器:

Picker(selection: $selectedProduct, label: Text("Product: \(self.products[self.selectedProduct].name!)")) {
                
                ForEach(0 ..< roles.count) {
                    Text(products[$0].name!)
                        .frame(minWidth: 0, maxWidth: .infinity)
                }
                
            }
            .animation(nil)
            .frame(minWidth: 0, maxWidth: .infinity)
            .font(.headline)
            .foregroundColor(Color.white)
            .padding()
            .background(Color(UIColor(.blue)))
            .cornerRadius(15.0)
            .pickerStyle(MenuPickerStyle())
            

这会产生我想要的样式,如下所示:

在此处输入图像描述

不幸的是,只有标签周围的区域是可触摸的:

在此处输入图像描述

我不知道如何使整个东西可以触摸。我错过了什么吗?

任何帮助将不胜感激。

4

1 回答 1

1

尝试将所有与尺寸/框架相关的修饰符应用于内部标签,而不是选择器本身,例如

   Picker(selection: $selectedProduct, label: 
      Text("Product: \(self.products[self.selectedProduct].name!)")
         .frame(minWidth: 0, maxWidth: .infinity)
         .font(.headline)
         .foregroundColor(Color.white)
         .padding()
         .background(Color(UIColor(.blue)))
         .cornerRadius(15.0)
   ) {
            
        ForEach(0 ..< roles.count) {
            Text(products[$0].name!)
                .frame(minWidth: 0, maxWidth: .infinity)
        }
        
    }
    .animation(nil)
    .pickerStyle(MenuPickerStyle())
于 2021-01-26T14:58:11.900 回答