SwiftUI 将图像添加到文本字段的左侧
SwiftUI add image to left side of text field
我试图在 SwiftUI 中的文本字段左侧获取一个 SF 符号,但在 SwiftUI 之前使用的方法并没有真正起作用。我认为这段代码可以工作,但没有。另外,如果有人可以提供帮助,我将如何更改文本字段中文本的字体和颜色?
这是我要完成的工作的图片:https://i.stack.imgur.com/Dud0M.png
TextField(textFieldDescription, text:
.constant(""))
.padding(.all)
.background(textFieldBackground)
.cornerRadius(10)
.leftViewMode = Image(systemName: "lock").always
.leftViewMode = .always
这是一种实现方式。注意有一个错误,如果文本字段的初始文本为空,颜色和字体设置将被忽略:
HStack {
Image(systemName: "lock")
TextField("", text: .constant("typed text")).foregroundColor(Color.red).font(Font.custom("Papyrus", size: 16))
}
.padding()
.overlay(RoundedRectangle(cornerRadius: 10).stroke(lineWidth: 2).foregroundColor(Color.black))
SwiftUI,XCode11.6
这段代码对我有用。
注:-
视图外的黄色边框是背景视图颜色,在您的情况下不会出现。 Outer-most HStack 持有项目图像和文本字段的另一个 HStack(内部 HStack)。到内部 HStack
Spacer(minLength: 20) 已添加,远离屏幕边缘。
HStack {
Spacer(minLength: 20)
HStack (alignment: .center,
spacing: 10) {
Image("userName")
.resizable()
.frame(width: 30, height: 30, alignment: .center)
.foregroundColor(.black)
.frame(minWidth: 0, maxWidth: 30)
.frame(minHeight: 0, maxHeight: 33)
TextField ("User Name", text: $userName)
} // HSTack
.padding([.top,.bottom], 2)
.padding(.leading, 5)
.background(Color.white, alignment: .center)
.cornerRadius(5)
Spacer(minLength: 20)
}
我试图在 SwiftUI 中的文本字段左侧获取一个 SF 符号,但在 SwiftUI 之前使用的方法并没有真正起作用。我认为这段代码可以工作,但没有。另外,如果有人可以提供帮助,我将如何更改文本字段中文本的字体和颜色?
这是我要完成的工作的图片:https://i.stack.imgur.com/Dud0M.png
TextField(textFieldDescription, text:
.constant(""))
.padding(.all)
.background(textFieldBackground)
.cornerRadius(10)
.leftViewMode = Image(systemName: "lock").always
.leftViewMode = .always
这是一种实现方式。注意有一个错误,如果文本字段的初始文本为空,颜色和字体设置将被忽略:
HStack {
Image(systemName: "lock")
TextField("", text: .constant("typed text")).foregroundColor(Color.red).font(Font.custom("Papyrus", size: 16))
}
.padding()
.overlay(RoundedRectangle(cornerRadius: 10).stroke(lineWidth: 2).foregroundColor(Color.black))
SwiftUI,XCode11.6
这段代码对我有用。
注:- 视图外的黄色边框是背景视图颜色,在您的情况下不会出现。 Outer-most HStack 持有项目图像和文本字段的另一个 HStack(内部 HStack)。到内部 HStack Spacer(minLength: 20) 已添加,远离屏幕边缘。
HStack {
Spacer(minLength: 20)
HStack (alignment: .center,
spacing: 10) {
Image("userName")
.resizable()
.frame(width: 30, height: 30, alignment: .center)
.foregroundColor(.black)
.frame(minWidth: 0, maxWidth: 30)
.frame(minHeight: 0, maxHeight: 33)
TextField ("User Name", text: $userName)
} // HSTack
.padding([.top,.bottom], 2)
.padding(.leading, 5)
.background(Color.white, alignment: .center)
.cornerRadius(5)
Spacer(minLength: 20)
}