SwiftのUITextFieldのボーダー(枠線)をカスタムした時の余白

Swift Swift
Swift

SwiftのUIKitで、コードでレイアウトをカスタムしたい時のやり方です。
UITextFieldをカスタムして、ボーダー(枠線)をカスタムした際に、何故か余白がなくなってしまいます。

何故なんですかね・・・

これを設定するための方法です。

class CustomTextField: UITextField {

    // 余白(パディング)の値
    let padding = UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8)
    
    override init(frame: CGRect) {

        super.init(frame: frame)
        
        // 枠線の設定
        self.layer.cornerRadius = 4.0
        self.layer.masksToBounds = true
        self.layer.borderWidth = 1.0
        self.layer.borderColor = R.color.borderColor()?.cgColor
        // R.Swiftを使用しているので、上記のようなカラー指定方法で書いています。
        
    }
    
    required init?(coder: NSCoder) {
        super.init(coder: coder)
    }
    
    // 下記の3つのメソッドが必要。 ここで枠線の余白を設定している。
    override func textRect(forBounds bounds: CGRect) -> CGRect {
        return bounds.inset(by: padding)
    }
    
    override func placeholderRect(forBounds bounds: CGRect) -> CGRect {
        return bounds.inset(by: padding)
    }
    
    override func editingRect(forBounds bounds: CGRect) -> CGRect {
        return bounds.inset(by: padding)
    }
    

}

このやり方で、UITextFieldの枠線をカスタムして、余白が消えるので、
設定しています。

他に良いやり方があれば教えてほしいです・・・ ・ω・

コメント

タイトルとURLをコピーしました