Установить отступы для 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 в этот метод и добавить отступы для правого и левого, а также задать цвет текста и фона, написав всего одну строку кода, как показано ниже:
[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()
Надеюсь, это будет полезно для кого-то еще там!
Ура!