没有得到底部边框适合文本字段宽度

时间:2017-06-15 13:15:56

标签: ios swift swift3 uitextfield border

下面是UITextField底部边框的图像。 但没有完全强调UITextField。 Not fully underline the TextField

以下是我正在使用的代码。     扩展名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()

1 个答案:

答案 0 :(得分:2)

在UI更新之前称为方法,因此请同步调用方法主队列,否则将方法移至ViewdidAppear或ViewWillappear

 override func viewDidLoad() {
    super.viewDidLoad()  
DispatchQueue.main.sync {
        yourTextField.underlined()
}
}

或致电

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