Установить заполнение для UITextField с помощью UITextBorderStyleNone: Swift
Основываясь на наиболее голосуемом ответе @Evil Trout, я создал собственный метод в своем классе ViewController, как показано ниже:
- (void) modifyTextField:(UITextField *)textField
{
UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
textField.leftView = paddingView;
textField.leftViewMode = UITextFieldViewModeAlways;
textField.rightView = paddingView;
textField.rightViewMode = UITextFieldViewModeAlways;
[textField setBackgroundColor:[UIColor whiteColor]];
[textField setTextColor:[UIColor blackColor]];
}
Теперь я могу вызвать этот метод внутри (метод viewDidLoad) и отправить в него любой из моих TextFields и добавить отступы для правого и левого, а также задать текст и фоновые цвета, написав всего одну строку кода, как показано ниже: 1006 *
[self modifyTextField:self.firstNameTxtFld];
Это отлично сработало на iOS 7!
Я знаю, что добавление слишком большого количества представлений может сделать этот класс более тяжелым для загрузки. Но когда меня беспокоили трудности других решений, я обнаружил, что более склонен к этому методу и более гибок в использовании этого способа. ;)
Спасибо за взлом "Злая форель"! (Лук)
Я подумал, что мне следует обновить фрагмент кода этого ответа с помощью Swift:
Поскольку Swift позволяет нам писать расширения для существующих классов, давайте напишем это следующим образом.
extension UITextField {
func addPaddingToTextField() {
let paddingView: UIView = UIView.init(frame: CGRectMake(0, 0, 8, 20))
self.leftView = paddingView;
self.leftViewMode = .Always;
self.rightView = paddingView;
self.rightViewMode = .Always;
self.backgroundColor = UIColor.whiteColor()
self.textColor = UIColor.blackColor()
}
}
Использование:
self.firstNameTxtFld.addPaddingToTextField()
Надеюсь, это будет полезно кому-то еще!
Ура!