UITextBorderStyleNone ile UITextField için dolgu ayarlama: Swift
@Evil Trout'un en çok oy alan cevabına dayanarak, ViewController sınıfımda aşağıdaki gibi özel bir yöntem oluşturdum:
- (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]];
}
Şimdi bu yöntemi (viewDidLoad yöntemi) içinde çağırabilir ve TextField'lerden herhangi birini bu yönteme gönderebilir ve hem sağ hem de sol için dolgu ekleyebilir ve aşağıdaki gibi yalnızca bir kod satırı yazarak metin ve arka plan renkleri verebilirim:
[self modifyTextField:self.firstNameTxtFld];
Bu iOS 7'de mükemmel çalıştı! Çok fazla Views eklemenin bunu biraz daha ağır bir sınıf haline getireceğini biliyorum. Ancak diğer çözümlerdeki zorluklardan endişe duyduğumda, kendimi bu yönteme daha eğilimli ve bu şekilde kullanma konusunda daha esnek buldum. ;)
Hack "Evil Alabalık" için teşekkürler! (Yay)
Bu cevap kod pasajını Swift ile güncellemem gerektiğini düşündüm:
Swift mevcut sınıflar için uzantılar yazmamıza izin verdiğinden, onu bu şekilde yazalım.
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()
}
}
Kullanımı:
self.firstNameTxtFld.addPaddingToTextField()
Umarım bu başka birine yardımcı olur!
Şerefe!