我在 SwiftUI 的文本字段上使用 cornerradius 和边框时遇到问题
I have trouble using cornerradius and borders on a textfield in SwiftUI
我在 swiftUI 中有一个文本字段,为了使其更具吸引力,我想添加边框和圆角。但它似乎并没有像预期的那样工作(见图)。我错过了什么?
我试过把 .cornerradius() 放在 .border() 之前,但效果一样。
TextField("Text input goes here", text: $addMins)
.padding(.all, 5.0)
.background(View)
.frame(width: 300.0, height: 35.0)
.border(Color.green, width: 2)
.cornerRadius(14)
所以你想要这样的东西?
TextField("Text Field", text: $text)
.padding(4)
.overlay(
RoundedRectangle(cornerRadius: 14)
.stroke(Color.green, lineWidth: 2)
)
.padding()
这里有一个简单的方法:
struct ContentView: View {
@State private var stringOfTextField: String = String()
var body: some View {
TextField("Enter text . . .", text: $stringOfTextField)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10.0).strokeBorder(Color.black, style: StrokeStyle(lineWidth: 1.0)))
.padding()
}
}
顺便说一句,如果您需要具有不同背景的描边和圆角圆角文本字段,这里有一个解决方案
TextField("Placeholder", text: $text)
.padding()
.background(RoundedRectangle(cornerRadius: 5).fill(Color.gray))
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(lineWidth: 1)
)
.foregroundColor(.black)
我在 swiftUI 中有一个文本字段,为了使其更具吸引力,我想添加边框和圆角。但它似乎并没有像预期的那样工作(见图)。我错过了什么?
我试过把 .cornerradius() 放在 .border() 之前,但效果一样。
TextField("Text input goes here", text: $addMins)
.padding(.all, 5.0)
.background(View)
.frame(width: 300.0, height: 35.0)
.border(Color.green, width: 2)
.cornerRadius(14)
所以你想要这样的东西?
TextField("Text Field", text: $text)
.padding(4)
.overlay(
RoundedRectangle(cornerRadius: 14)
.stroke(Color.green, lineWidth: 2)
)
.padding()
这里有一个简单的方法:
struct ContentView: View {
@State private var stringOfTextField: String = String()
var body: some View {
TextField("Enter text . . .", text: $stringOfTextField)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10.0).strokeBorder(Color.black, style: StrokeStyle(lineWidth: 1.0)))
.padding()
}
}
顺便说一句,如果您需要具有不同背景的描边和圆角圆角文本字段,这里有一个解决方案
TextField("Placeholder", text: $text)
.padding()
.background(RoundedRectangle(cornerRadius: 5).fill(Color.gray))
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(lineWidth: 1)
)
.foregroundColor(.black)