UITextBorderStyleNone で UITextField のパディングを設定する 質問する

UITextBorderStyleNone で UITextField のパディングを設定する 質問する

にカスタム背景を使用したいと思いましたUITextFields。見た目をきれいにするために を使用する必要があることを除けば、これはうまく機能しますUITextBorderStyleNone。これにより、テキストがパディングなしで左側に固定されます。

UITextBorderStyleRoundedRectカスタム背景画像を使用することを除いて、同じように見えるようにパディングを手動で設定できますか?

ベストアンサー1

まさにこの状況に合わせて左のパディングを設定するための巧妙なハックを見つけました。

基本的には、 の leftView プロパティを、UITextField必要なパディングのサイズの空のビューに設定します。

UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
textField.leftView = paddingView;
textField.leftViewMode = UITextFieldViewModeAlways;

私にとっては魔法のように効きました!

Swift 3/Swift 4では、次のようにすることで実現できます。

let paddingView: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 5, height: 20))
textField.leftView = paddingView
textField.leftViewMode = .always

おすすめ記事