【Swift】 TextFieldに架線を引く

textField UnderLineSwift
textField UnderLine

*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()
    }
スポンサーリンク
タイトルとURLをコピーしました