Saya menggunakan tampilan teks sebagai komposer komentar.
Di properti inspektur saya tidak dapat menemukan apa pun seperti properti gaya perbatasan sehingga saya dapat menggunakan kotak bulat, seperti UITextField
.
Jadi, pertanyaannya adalah: Bagaimana saya bisa bergaya UITextView
seperti UITextField
dengan persegi panjang?
ios
uitextview
harshalb
sumber
sumber
UITextField
dan mematikan sajauserInteractionEnabled
?Jawaban:
Tidak ada gaya implisit yang harus Anda pilih, ini melibatkan penulisan sedikit kode menggunakan
QuartzCore
kerangka kerja:Ini hanya bekerja pada OS 3.0 dan di atasnya, tapi saya kira sekarang ini adalah platform de facto.
sumber
UITextField
denganborderStyle
properti disetel keUITextBorderStyleRoundedRect
- lihat posting saya di bawah ini.kode ini bekerja dengan baik untuk saya:
sumber
Versi Swift 3
Setelah mengatur tampilan teks dalam pembangun antarmuka.
Versi Swift 2.2
sumber
Sunting: Anda harus mengimpor
untuk menggunakan jari-jari sudut.
Coba ini pasti akan berhasil
Seperti yang dipecahkan oleh Rob, pengaturan jika Anda ingin warna garis tepi sama
UITextField
maka Anda perlu mengubah lebar garis menjadi 2.0 dan warna menjadi abu-abu dengan menambahkan baris berikutsumber
Saya ingin yang sebenarnya, jadi saya tambahkan
UIImageView
sebagai subview dariUITextView
. Ini cocok dengan batas asli pada aUITextField
, termasuk gradien dari atas ke bawah:Ini adalah gambar yang saya gunakan:
sumber
Salah satu solusinya adalah menambahkan UITextField di bawah UITextView , menjadikan
UITextView
latar belakang transparan dan menonaktifkan interaksi pengguna diUITextField
. Kemudian dalam kode ubahUITextField
frame dengan sesuatu seperti ituAnda akan memiliki tampilan yang sama persis dengan bidang teks.
Dan seperti yang disarankan oleh Jon , Anda harus memasukkan kode ini ke dalam
[UIViewController viewDidLayoutSubviews]
iOS 5.0+.sumber
viewDidLayoutSubviews:
(iOS 5.0+).Untuk efek terbaik, Anda harus menggunakan gambar latar kustom (dapat ditarik). Ini juga bagaimana
UITextField
perbatasan bulat ditarik.sumber
Salah satu cara yang saya temukan untuk melakukannya tanpa pemrograman adalah membuat latar belakang textfield transparan, lalu letakkan Round Round Button di belakangnya. Pastikan untuk mengubah pengaturan tombol untuk menonaktifkannya dan hapus centang pada
Disable adjusts image
kotak centang.sumber
Anda mungkin ingin memeriksa perpustakaan saya yang disebut DCKit .
Anda dapat membuat tampilan teks sudut bundar (serta bidang teks / tombol / polos
UIView
) dariInterface Builder
langsung:Ini juga memiliki banyak fitur berguna lainnya, seperti bidang teks dengan validasi, kontrol dengan batas, garis putus-putus, tampilan lingkaran dan garis rambut dll.
sumber
Saya tahu sudah ada banyak jawaban untuk yang ini, tetapi saya tidak benar-benar menemukan satu pun dari mereka cukup (setidaknya di Swift). Saya menginginkan solusi yang memberikan batas persis sama dengan UITextField (bukan yang diperkirakan yang terlihat seperti itu terlihat sekarang, tetapi yang terlihat persis seperti itu dan akan selalu terlihat persis seperti itu). Saya perlu menggunakan UITextField untuk mendukung UITextView sebagai latar belakang, tetapi tidak ingin harus membuatnya secara terpisah setiap waktu.
Solusi di bawah ini adalah UITextView yang memasok UITextField sendiri untuk perbatasan. Ini adalah versi lengkap dari solusi lengkap saya (yang menambahkan dukungan "placeholder" ke UITextView dengan cara yang serupa) dan diposting di sini: https://stackoverflow.com/a/36561236/1227119
sumber
Mencoba kode Quartzcore dan menemukannya menyebabkan kelambatan pada 3G lama saya (saya gunakan untuk pengujian). Bukan masalah besar tetapi jika Anda ingin menjadi inklusif mungkin untuk ios dan perangkat keras yang berbeda, saya sarankan jawaban Andrew_L di atas - atau buat gambar Anda sendiri dan terapkan sesuai itu.
sumber
Ada gambar latar belakang yang bagus yang identik dengan yang
UITextView
digunakan untuk mengirim pesan teks di aplikasi Pesan iPhone. Anda memerlukan Adobe Illustrator untuk mendapatkan & memodifikasinya. elemen vektor iphone uisumber
sumber
Anda dapat membuat Bidang Teks yang tidak menerima acara apa pun di atas Tampilan Teks seperti ini:
sumber
Jika Anda ingin menjaga kode controller Anda tetap bersih, Anda dapat subkelas UITextView seperti di bawah ini, dan mengubah nama kelas di Interface Builder.
RoundTextView.h
RoundTextView.m
sumber
Ini solusinya:
sumber
Saya pikir itu tidak mungkin. tetapi Anda dapat melakukan
UITableView
(dikelompokkan) dengan 1 bagian dan 1 sel kosong dan menggunakannya sebagai wadah untuk AndaUITextView
.sumber
Ini adalah pertanyaan lama, dan saya juga mencari jawaban pertanyaan ini. Jawaban luvieeres adalah 100% benar dan kemudian Rob menambahkan beberapa kode. Itu luar biasa, tetapi saya menemukan pihak ketiga dalam jawaban pertanyaan lain yang tampaknya sangat membantu saya. Saya tidak hanya mencari tampilan yang sama dari
UITextField
atasUITextView
, saya juga mencari dukungan multiline. ChatInputSample memuaskan keduanya. Itulah mengapa saya pikir pihak ketiga ini mungkin bermanfaat bagi orang lain. Terima kasih juga kepada Timur, ia menyebutkan open source ini di sini .sumber
Di iOS7, berikut ini cocok dengan batas UITextField dengan sempurna (setidaknya bagi saya):
Tidak perlu mengimpor sesuatu yang istimewa.
Terima kasih kepada @uvieere dan @hanumanDev yang jawabannya hampir membuat saya :)
sumber
Bagaimana kalau saja:
sumber
UITextField
denganuserInteractionEnabled
set keNO
.