可以应用于每个UITextField的自定义类 - Swift
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以应用于每个UITextField的自定义类 - Swift相关的知识,希望对你有一定的参考价值。
我是一个非常新的编程和正在制作一个将有许多UITextFields的项目。我希望文本字段底部只有一个边框,以便更清晰,我发现这里有一些代码可以实现。
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
如何创建一个类,以便我在故事板中放置的每个UItext字段都可以简单地将其作为所述类的一部分?我不想为每个UITextField复制和粘贴此代码。有没有办法做到这一点,我可以单独编辑应用此类的每个UITextfield的占位符文本?
答案
只需一次在任何类下输入此代码非常简单
@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()
}
}
在“设置”功能中,放置所需的所有自定义项。
之后回到设计并在所有TextField中选择它并运行
另一答案
这是一个例子:
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
以上是关于可以应用于每个UITextField的自定义类 - Swift的主要内容,如果未能解决你的问题,请参考以下文章
关于 iphone 上的自定义 UItextField 包括代表
如何告诉带有 UITextField 的自定义 UIView 接收触摸事件
填写所有 UITextField 时,UIButton 未启用
您可以在自己的自定义控件中重用 UITextField 中的“清除”按钮图形(其中带有“x”的圆圈)吗?
如何使用 @IBDesignable 和 @IBInspectable 制作 uitextfield 的自定义子类并在那里我可以从左侧设置占位符填充