可应用于每个 UITextField 的自定义 class - Swift
Custom class that can be applied to every UITextField - Swift
我是编程新手,正在制作一个包含许多 UITextField 的项目。我想让文本字段的底部只有一个边框,这样看起来更简洁,我在这里找到了一些代码可以实现这一点。
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.darkGray.cgColor
border.frame = CGRect(x: 0, y: textField.frame.size.height - width, width: textField.frame.size.width, height: textField.frame.size.height)
border.borderWidth = width
textField.layer.addSublayer(border)
textField.layer.masksToBounds = true
如何制作 class 以便我放置在情节提要中的每个 UItext 字段都可以简单地使其成为所述 class 的一部分?我不想为每个 UITextField 复制和粘贴此代码。有没有办法做到这一点,我可以单独编辑应用此 class 的每个 UITextfield 的占位符文本?
这是一个例子:
class CustomTextField: UITextField {
convenience init() {
self.init(frame: .zero)
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.darkGray.cgColor
border.frame = CGRect(x: 0, y: frame.size.height - width, width: frame.size.width, height: frame.size.height)
border.borderWidth = width
layer.addSublayer(border)
layer.masksToBounds = true
}
}
要简化您的边界代码,您可以这样做:
layer.borderWidth = 2.0
layer.masksToBounds = true
非常简单,只需在任何 class 下输入一次此代码即可
@IBDesignable
open class customUITextField: UITextField {
func setup() {
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.darkGray.cgColor
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
border.borderWidth = width
self.layer.addSublayer(border)
self.layer.masksToBounds = true
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
}
在 "Setup" 函数中放置您想要的所有自定义项。
之后返回设计并在您拥有的所有 TextField 中选择它 运行
我是编程新手,正在制作一个包含许多 UITextField 的项目。我想让文本字段的底部只有一个边框,这样看起来更简洁,我在这里找到了一些代码可以实现这一点。
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.darkGray.cgColor
border.frame = CGRect(x: 0, y: textField.frame.size.height - width, width: textField.frame.size.width, height: textField.frame.size.height)
border.borderWidth = width
textField.layer.addSublayer(border)
textField.layer.masksToBounds = true
如何制作 class 以便我放置在情节提要中的每个 UItext 字段都可以简单地使其成为所述 class 的一部分?我不想为每个 UITextField 复制和粘贴此代码。有没有办法做到这一点,我可以单独编辑应用此 class 的每个 UITextfield 的占位符文本?
这是一个例子:
class CustomTextField: UITextField {
convenience init() {
self.init(frame: .zero)
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.darkGray.cgColor
border.frame = CGRect(x: 0, y: frame.size.height - width, width: frame.size.width, height: frame.size.height)
border.borderWidth = width
layer.addSublayer(border)
layer.masksToBounds = true
}
}
要简化您的边界代码,您可以这样做:
layer.borderWidth = 2.0
layer.masksToBounds = true
非常简单,只需在任何 class 下输入一次此代码即可
@IBDesignable
open class customUITextField: UITextField {
func setup() {
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.darkGray.cgColor
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
border.borderWidth = width
self.layer.addSublayer(border)
self.layer.masksToBounds = true
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
}
在 "Setup" 函数中放置您想要的所有自定义项。
之后返回设计并在您拥有的所有 TextField 中选择它 运行