Встановіть набивання для 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) і надіслати будь-яке з моїх текстових полів до цього методу та додати набивання для правого і лівого, і надати кольори тексту та фону, записавши лише один рядок коду, як описано нижче:
[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()
Сподіваюся, це було б корисно для когось іншого там!
Ура!