可以应用于每个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()
    }
}

enter image description here

在“设置”功能中,放置所需的所有自定义项。

之后回到设计并在所有TextField中选择它并运行

enter image description here

另一答案

这是一个例子:

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 的自定义子类并在那里我可以从左侧设置占位符填充