UITextBorderStyleNone के साथ UITextField के लिए पैडिंग सेट करें: स्विफ्ट
@Evil ट्राउट के सबसे अधिक मत वाले उत्तर के आधार पर मैंने अपने ViewController वर्ग में एक कस्टम विधि बनाई, जैसे दिखाया गया bellow:
- (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 पर काम करता है! मुझे पता है कि बहुत अधिक दृश्य जोड़ने से यह थोड़ा भारी वर्ग हो सकता है। लेकिन जब अन्य समाधानों में कठिनाई के बारे में चिंतित हूं, तो मैंने खुद को इस पद्धति के लिए अधिक पक्षपाती पाया और इस तरह से उपयोग करने के साथ अधिक लचीला। ;)
हैक "ईविल ट्राउट" के लिए धन्यवाद! (धनुष)
मुझे लगा कि मुझे स्विफ्ट के साथ इस उत्तर का कोड स्निपेट अपडेट करना चाहिए:
चूंकि स्विफ्ट हमें मौजूदा कक्षाओं के लिए एक्सटेंशन लिखने की अनुमति देता है, तो हम इसे इस तरह से लिखते हैं।
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()
आशा है कि यह किसी और के लिए उपयोगी होगा!
चीयर्स!