小编gra*_*ell的帖子

SwiftUI - 列表在状态栏文本下方滚动

我创建列表并在其中添加 VStack 并在 VStack 中添加了一些视图。当我运行该项目时,我观察到 List 的滚动超出了安全区域。仅供参考,如果我删除 Frame 属性仍然是相同的结果。模拟器gif

struct ContentView : View {
var body: some View {

    List(0..<5) { item in
        HStack(alignment: VerticalAlignment.top, spacing: 5) {
            Image(systemName: "photo")
            VStack(alignment: HorizontalAlignment.leading, spacing: 10) {
                Text("USA")
                    .font(.headline)

                Text("This is an extremely long string that will never fit even the widest of Phones Excerpt From: Paul Hudson. “SwiftUI by Example”. Apple Books. ")
                    .lineLimit(nil)
                    .font(.subheadline)
            }
        }
    }
    .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
    .background(Color.red)
        .onAppear() {
            print("on …
Run Code Online (Sandbox Code Playgroud)

ios swiftui

7
推荐指数
2
解决办法
2584
查看次数

SwiftUI-在HStack中并排放置两个选择器不会调整选择器的大小

我的目标是将两个选择器水平并排放置,每个选择器占用屏幕的一半宽度。想象一下UIPickerView,它适合屏幕的宽度,并且具有两个宽度相等的组件-这就是我试图在SwiftUI中重新创建的组件。

由于SwiftUI中的选择器当前不允许使用多个组件,因此对我来说,显而易见的替代方案是将两个选择器放置在内HStack

这是来自测试项目的一些示例代码:

struct ContentView: View {
    @State var selection1: Int = 0
    @State var selection2: Int = 0

    @State var integers: [Int] = [0, 1, 2, 3, 4, 5]

    var body: some View {
        HStack {
            Picker(selection: self.$selection1, label: Text("Numbers")) {
                ForEach(self.integers) { integer in
                    Text("\(integer)")
                }
            }
            Picker(selection: self.$selection2, label: Text("Numbers")) {
                ForEach(self.integers) { integer in
                    Text("\(integer)")
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是画布:

SwiftUI-HStack中的选择器

选择器不会调整为屏幕宽度的一半,就像我期望的那样。它们保留其大小,而是拉伸内容视图的宽度,从而扭曲了流程中其他UI元素的宽度(正如我在其他项目中尝试这样做时所发现的那样)。

我知道我可以用它UIViewRepresentable来获得想要的效果,但是鉴于我要使用它的复杂性,SwiftUI会更容易使用。

是将两个选择器放置在内HStack并不能正确调整它们的大小,还是SwiftUI中的选择器只是具有无法更改的固定宽度?


更新资料

使用GeometryReader …

picker swiftui hstack

2
推荐指数
2
解决办法
825
查看次数

标签 统计

swiftui ×2

hstack ×1

ios ×1

picker ×1