iOS学习笔记(十五):实现带有下划线的TextField

最近写了一个登录页面,要求登录框与密码框均为下划线的样式。而TextField的layer属性只能设置整个边框,这时就需要重写TextField的draw方法。

import UIKit

class LoginTextField: UITextField {

    //重写draw方法实现下划线TextField
    override func draw(_ rect: CGRect) {
        let context = UIGraphicsGetCurrentContext()
        context?.setFillColor(UIColor.black.cgColor)
        context?.fill(CGRect(x: 0, y: frame.height - 1, width: frame.width, height: 1))
    }
 
} 

这时我们就成功创建了一个名为LoginTextField的子类,使用draw方法给其下边缘画了一条宽度为1的线。需要使用时,只需要将TextField实例化为LoginTextField即可,比如:

import UIKit

class LoginViewController: UIViewController {

    let accountTextField = LoginTextField()
    let passwordTextField = LoginTextField()

    //more members...

}

最终写出的登录界面的效果如下:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注