gpt4 book ai didi

layout - 如何阻止 SwiftUI View 变得比 super View 更宽

转载 作者:行者123 更新时间:2023-12-04 15:39:42 25 4
gpt4 key购买 nike

我创建了一个 UIHostingController在我的应用程序中放置一个 SwiftUI View 。根 View 包含 VStack ,里面还有一些 HStack s 和 Picker s。选择器将 View 推得比屏幕宽 8 点。它看起来很糟糕 - 文本稍微离开屏幕。通常我会使用自动布局约束来解决这个问题,将 View 的左右边缘固定到 super View ,优先级为 1000(必需)。 SwiftUI 中的等价物是什么?

一些触发问题的简化代码

struct EditSegmentView: View {

@State var seconds: Int = 10

var body: some View {
VStack {
HStack {
Text("Pause after intro")
Spacer()
Text("10 seconds")
}
Picker(selection: $seconds, label: Text("Seconds")) {
ForEach(0..<60) { n in
Text("\(n) sec").tag(n)
}
}
}
}
}

这是从 UIViewController 显示的, 像这样:
let editView = EditSegmentView()
let vc = UIHostingController(rootView: editView)
vc.modalPresentationStyle = .fullScreen
present(vc, animated: true)

最佳答案

我看不出提供的代码有任何明显错误。您可以尝试使用 GeometryReader强行VStack为可用空间的宽度。还添加一些 padding( ),否则你的 Text将从边缘开始

var body: some View {
GeometryReader { proxy in
VStack {
//...
} .padding()
.frame(width: proxy.size.width)
}
}

当您调试其 View 层次结构时,是否有任何关于为什么 View 扩展到边缘之外的线索?

关于layout - 如何阻止 SwiftUI View 变得比 super View 更宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58256844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com