Setel padding untuk UITextField dengan UITextBorderStyleNone: Swift
Berdasarkan jawaban terbanyak @Evil Trout, saya membuat metode khusus di kelas ViewController saya, seperti yang ditunjukkan di bawah ini:
- (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]];
}
Sekarang saya dapat memanggil metode itu di dalam (metode viewDidLoad) dan mengirim TextFields saya ke metode itu dan menambahkan padding untuk kanan dan kiri, dan memberikan warna teks dan latar belakang dengan menulis hanya satu baris kode, sebagai berikut:
[self modifyTextField:self.firstNameTxtFld];
Ini Bekerja sempurna di iOS 7! Saya tahu bahwa menambahkan terlalu banyak Tampilan mungkin membuat kelas ini sedikit lebih berat untuk dimuat. Tetapi ketika khawatir tentang kesulitan dalam solusi lain, saya menemukan diri saya lebih bias terhadap metode ini dan lebih fleksibel dengan menggunakan cara ini. ;)
Terima kasih untuk Hack "Trout Jahat"! (busur)
Saya pikir saya harus memperbarui potongan kode jawaban ini dengan Swift:
Karena Swift memungkinkan kita untuk menulis ekstensi untuk kelas yang ada, mari kita tulis dengan cara itu.
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()
}
}
Pemakaian:
self.firstNameTxtFld.addPaddingToTextField()
Semoga ini bisa membantu orang lain di luar sana!
Bersulang!