高校倫理1442459 views
数学講師2900085 views
小学理科720872 views
高校国語789226 views
Computer369216 views
高校日本史190786 views
高校物理161327 views
MathPython499435 views
中学英語812728 views
りんご215444 views
Help
Tools

English

SwiftのUITextFieldに余白(padding)をつける

デフォルトのUITextFieldは、中の文字が隙間なく埋められて見にくい感じになる。枠線と文字の間に余白をつけるには、UITextFieldを継承したクラスを作る。

class CustomTextField: UITextField {

private let padding: CGFloat = 8

override func textRect(forBounds bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, UIEdgeInsetsMake(padding, padding, padding, padding))
}

override func editingRect(forBounds bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, UIEdgeInsetsMake(padding, padding, padding, padding))
}

override func placeholderRect(forBounds bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, UIEdgeInsetsMake(padding, padding, padding, padding))
}
}

CustomTextFieldのインスタンスはUITextFieldのそれと同じように、ボーダーの太さを変えたり、制約を足したりできる。

textRect、editingRect、placeholderRectの3つを設定する。UITextFieldには文字、編集、プレースホルダーの状態があるため。