Ios 未使底部的边框适合文本字段宽度

Ios 未使底部的边框适合文本字段宽度,ios,swift,swift3,uitextfield,border,Ios,Swift,Swift3,Uitextfield,Border,下面是UITextField底部的边框图像。 但未在UITextField中完全加下划线。 下面是我正在使用的代码。 扩展UITextField{ func underlined(){ let border = CALayer() let width = CGFloat(1.0) border.borderColor = UIColor.red.cgColor border.frame = CGRect(x: 0, y:

下面是UITextField底部的边框图像。 但未在UITextField中完全加下划线。

下面是我正在使用的代码。 扩展UITextField{

    func underlined(){
        let border = CALayer()
        let width = CGFloat(1.0)
        border.borderColor = UIColor.red.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
    }

}
//召唤

yourTextField.underlined()

在UI更新之前调用该方法,因此同步调用方法主队列,否则将方法移动到ViewDidDisplay或ViewWillDisplay

 override func viewDidLoad() {
    super.viewDidLoad()  
DispatchQueue.main.sync {
        yourTextField.underlined()
}
}
或者像这样打电话

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
     yourTextField.underlined()
}

在UI更新之前调用该方法,因此同步调用方法主队列,否则将方法移动到ViewDidDisplay或ViewWillDisplay

 override func viewDidLoad() {
    super.viewDidLoad()  
DispatchQueue.main.sync {
        yourTextField.underlined()
}
}
或者像这样打电话

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
     yourTextField.underlined()
}

在viewdidload或elseyes中,在viewdidload()函数中,将其命名为yourTextField。在viewdidload或elseyes中,在viewdidload()函数中,将其命名为yourTextField。在viewdidload或elseyes中,在viewdidload()函数中,将其命名为yourTextField。在viewdidload()函数中,尝试将其命名为ViewDid