gpt4 book ai didi

swift - HStack 和 TextField 的角半径不更新

转载 作者:行者123 更新时间:2023-12-05 08:47:14 24 4
gpt4 key购买 nike

这是我的内容 View 的代码。如您所见,我已尝试使用 HStack 来包含 TextField,以及仅包含 TextField。角半径对灰色搜索矩形没有任何影响 - 边缘仍然是完美的矩形。

    
@State var searchText = ""
var body: some View {
ZStack {
//function that's the content argument to ZStack
Color((.systemGreen))
VStack {
Text("App")
.font(.largeTitle)
.foregroundColor(Color.white)
//HStack {
TextField("Searchstring", text: $searchText)
.padding()
.background(Color(.systemGray6))
.padding()
.cornerRadius(12)
//}
// .padding()
// .background(Color(.systemGray6))
// .padding(.horizontal)
// .cornerRadius(12)
}
}
}
}

这就是所有情况下预览的样子: corner radius fails to show in preview

最佳答案

问题出在这里:

.padding() /// 1.
.background(Color(.systemGray6)) /// 2.
.padding() /// 3.
.cornerRadius(12) /// 4.
  1. 您的文本字段有一个填充
  2. backgroundpadding
  3. 之后应用
  4. background 之后添加另一个 padding
  5. 您在 padding 之上应用另一个 cornerRadius

因此,是 padding 被舍入,而不是 background

Diagram showing transparent padding rounded

相反,您想在 background 之后立即应用 cornerRadius

Diagram showing background rounded, then padding on outside

struct ContentView: View {
@State var searchText = ""
var body: some View {
ZStack {
//function that's the content argument to ZStack
Color((.systemGreen))
VStack {
Text("App")
.font(.largeTitle)
.foregroundColor(Color.white)

TextField("Searchstring", text: $searchText)
.padding()
.background(Color(.systemGray6))
.cornerRadius(12) /// corner radius immediately after the background
.padding() /// extra padding outside the background
}
}
}
}

结果:

Background is rounded, then padding applied outside

关于swift - HStack 和 TextField 的角半径不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68110600/

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