*Swift5, Xcode ver 12.1
textFieldの下線が右に突き抜けたりして上手くいかなかったのでメモ。
viewDidLayoutSubviewsで呼び出しても初期表示は上手くいったが、textFieldに入力すると二重線になってしまうのでだめ…
あれこれ試した結果、色々方法がある中で下記が一番上手くいった。
extension UITextField {
func setUnderLine() {
// 枠線を非表示にする
borderStyle = .none
let border = CALayer()
// 下線の太さ
let width = CGFloat(0.9)
// 下線の色
border.borderColor = UIColor.lightGray.cgColor
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width - 10, height: self.frame.size.height)
border.borderWidth = width
self.layer.addSublayer(border)
self.layer.masksToBounds = true
}
}
これをViewDidLoadで呼び出す。
override func viewDidLoad() {
super.viewDidLoad()
textField.setUnderLine()
}