UITextField边框以Swift格式指定半径
由于某些原因,我希望指定30的角半径将不会显示在Swift中Xcode编码的主板上 如果我使用passWordTextField.borderStyle=UITextField.borderStyle.roundedRect,则会显示textfield。这将不允许我指定角半径/borderStyle值,但如果我使用passWordTextField.borderStyle=UITextField.borderStyle.initrawValue:30UITextField边框以Swift格式指定半径,swift,xcode,uitextfield,border,radius,Swift,Xcode,Uitextfield,Border,Radius,由于某些原因,我希望指定30的角半径将不会显示在Swift中Xcode编码的主板上 如果我使用passWordTextField.borderStyle=UITextField.borderStyle.roundedRect,则会显示textfield。这将不允许我指定角半径/borderStyle值,但如果我使用passWordTextField.borderStyle=UITextField.borderStyle.initrawValue:30 如果您还想在故事板上看到更改,可以使用自定义
如果您还想在故事板上看到更改,可以使用自定义textfield类
public class CustomTextField: UITextField {
public override init(frame: CGRect) {
super.init(frame: frame)
prepare()
}
required init?(coder decoder: NSCoder) {
super.init(coder: decoder)
prepare()
private func prepare() {
layer.cornerRadius = 30
}
}
现在,在故事板上,您可以将Identity inspector中textfield的类更改为CustomTextField 您需要设置@IBDesignable和prepareforPrinterFaceBuilder,以反映界面生成器中的文本字段。以下是步骤:
1.创建UITextField的子类,如下所示
import UIKit
@IBDesignable
class CostumTxtField: UITextField {
override func prepareForInterfaceBuilder() {
makeCorenerRadius()
}
override func awakeFromNib() {
super.awakeFromNib()
makeCorenerRadius()
}
override init(frame: CGRect) {
super.init(frame: frame)
autocorrectionType = .no
keyboardType = .default
returnKeyType = .done
clearButtonMode = .whileEditing
contentVerticalAlignment = .center
makeCorenerRadius()
}
required init?(coder decoder: NSCoder) {
super.init(coder: decoder)
func makeCorenerRadius(){
backgroundColor = .white
layer.cornerRadius = 20
}
}
在视图控制器中,按如下方式编辑函数:
import UIKit
@IBDesignable
class CostumTxtField: UITextField {
override func prepareForInterfaceBuilder() {
makeCorenerRadius()
}
override func awakeFromNib() {
super.awakeFromNib()
makeCorenerRadius()
}
override init(frame: CGRect) {
super.init(frame: frame)
autocorrectionType = .no
keyboardType = .default
returnKeyType = .done
clearButtonMode = .whileEditing
contentVerticalAlignment = .center
makeCorenerRadius()
}
required init?(coder decoder: NSCoder) {
super.init(coder: decoder)
func makeCorenerRadius(){
backgroundColor = .white
layer.cornerRadius = 20
}
}
func customTextField (xco: CGFloat, yco: CGFloat, widthLength: CGFloat, heightLength: CGFloat, fontSize: CGFloat) {
let passWordTextField = UITextField(frame: CGRect(x: xco, y: yco, width: widthLength, height: heightLength )) {
passWordTextField.placeholder = "Enter text here" //set placeholder text
passWordTextField.font = UIFont.systemFont(ofSize: fontSize) // set font size of text field
passWordTextField.delegate = self as? UITextFieldDelegate
self.view.addSubview(passWordTextField)
}