Saya hanya instantiating UITextField
dan memperhatikan bahwa teks tidak terpusat secara vertikal. Sebaliknya, itu rata dengan bagian atas tombol saya, yang saya temukan agak aneh karena saya akan mengharapkan default untuk memusatkannya secara vertikal. Bagaimana saya bisa memusatkannya secara vertikal, atau ada pengaturan default yang saya lewatkan?
ios
uitextfield
alignment
Joey
sumber
sumber
textField
adalah nama dariUITextField
instansinya - milik Anda mungkin berbeda. Jadi dia akan memiliki sesuatu sepertiUITextField *textField = [[UITextField alloc] init];
. Jika Anda menggunakan nama variabel yang berbeda (selain daritextField
setelah*
), Anda harus melakukannyayourDifferentVariableNameHere.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter
.textField.contentVerticalAlignment = .center
Ini berpotensi mendapat beberapa faktor yang menyulitkan, beberapa disinggung dalam jawaban sebelumnya:
Apa yang Anda coba selaraskan adalah penting karena titik mana dalam font harus dipusatkan secara vertikal karena ketinggian garis, ascenders, descenders dll. (Sumber: ilovetypography.com ) (Gambar terima kasih kepada http://ilovetypography.com/2009 / 01/14 / metrik-vertikal-mencolok / )
Misalnya, ketika Anda berurusan dengan angka saja, perataan tengah standar tidak akan terlihat benar. Bandingkan perbedaan pada dua di bawah ini, yang menggunakan perataan yang sama (dalam kode di bawah), yang salah satu terlihat benar dan yang lain terlihat sedikit salah:
Tidak tepat dengan campuran huruf:
tetapi terlihat benar jika itu hanya angka
Jadi, sayangnya, mungkin perlu sedikit coba-coba dan penyesuaian manual untuk membuatnya tampak benar secara visual.
Saya menempatkan kode di bawah ini dalam subclass dari UITextField. Itu memanggil metode superclass karena ini memperhitungkan tombol yang jelas hadir.
sumber
placeholderRectForBounds
terlalu meluas ke kanan. Saya memiliki pandangan kanan dan masuk ke dalamnya tidak seperti batas lainnya. Saya baru saja menerapkantextRectForBounds
dan memanggilnya dari 2 funcs lainnya :)Di storyboard: Di bawah kontrol -> ubah perataan vertikal maupun horizontal, sesuai dengan kebutuhan Anda.
sumber
Ini berfungsi dengan baik untuk teks textField. Tetapi jika Anda ingin menggunakan teks placeholder (teks yang akan muncul saat bidang teks kosong), di iOS 7 Anda akan mengalami masalah.
Saya memecahkannya dengan menimpa kelas TextField dan
metode.
Seperti ini:
Bekerja untuk iOS7 dan versi sebelumnya.
sumber