SwiftUI选取器选择指标不尊重框架宽度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI选取器选择指标不尊重框架宽度相关的知识,希望对你有一定的参考价值。

我试图在一个HStack中添加2个Picker,通过使用几何读取器来设置Picker框架的宽度,并取得成功。然而,选择指标并不尊重框架的宽度。问题是,由于重叠,中间的线条看起来不同。有谁知道如何解决这个问题,或者说这是不可能的,因为你不能像在这里提到的那样自定义选择指标。文件?

let range = Range(0...60)
@State index = 0

var body: some View {
   VStack {
      GeometryReader { geometry in
         HStack(spacing: 0) {
            Picker(selection: $index, label: Text("")) {
               ForEach(range) { index in
                  Text("(index)").tag(index)
               }
            }
            .labelsHidden()
            .frame(width: geometry.size.width / 2)

            Picker(selection: $index, label: Text("")) {
               ForEach(range) { index in
                  Text("(index)").tag(index)
               }
            }
            .labelsHidden()
            .frame(width: geometry.size.width / 2)
         }
      }
   }
}

HStack with 2 pickersHStack with 1 picker

答案

使用.clipped为两个,如下面

Picker(selection: self.$index, label: Text("")) {
    ForEach(self.range) { index in
        Text("(index)").tag(index)
    }
}
.labelsHidden()
.frame(width: geometry.size.width / 2)
.clipped()                                  // << here !!

以上是关于SwiftUI选取器选择指标不尊重框架宽度的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 无法删除选取器上方的空间 - 表单版本

UITextView 在 SwiftUI 中可表示不尊重 ScrollView 中的宽度界限

无法使用 SwiftUI 使选取器居中

SwiftUI 表单中的选取器在选择一个值后变为灰色

如何正确处理更新视图中的选取器(SwiftUI)

SwiftUI 自定义选取器标签未呈现