Saya ingin menyesuaikan latar belakang dan warna garis tepi dari UITableView gaya-berkelompok.
Saya dapat menyesuaikan warna latar belakang dengan menggunakan yang berikut ini:
tableView.contentView.backgroundColor = [UIColor greenColor];
Tapi warna perbatasan masih merupakan sesuatu yang saya tidak tahu bagaimana mengubahnya.
Bagaimana cara menyesuaikan dua aspek tampilan tabel gaya-dikelompokkan ini?
Jawaban:
UPDATE: Di iPhone OS 3.0 dan yang lebih baru
UITableViewCell
sekarang memilikibackgroundColor
properti yang membuatnya sangat mudah (terutama dalam kombinasi dengan[UIColor colorWithPatternImage:]
penginisialisasi). Tetapi saya akan meninggalkan jawaban versi 2.0 di sini untuk siapa saja yang membutuhkannya…Ini lebih sulit dari yang seharusnya. Inilah cara saya melakukan ini ketika saya harus melakukannya:
Anda perlu menyetel properti backgroundView UITableViewCell ke UIView kustom yang menggambar batas dan latar belakang itu sendiri dalam warna yang sesuai. Tampilan ini harus dapat menggambar batas dalam 4 mode berbeda, dibulatkan di atas untuk sel pertama dalam suatu bagian, dibulatkan di bawah untuk sel terakhir dalam suatu bagian, tidak ada sudut membulat untuk sel di tengah bagian , dan dibulatkan di keempat sudut untuk bagian yang berisi satu sel.
Sayangnya saya tidak tahu bagaimana menyetel mode ini secara otomatis, jadi saya harus menyetelnya dalam metode -cellForRowAtIndexPath UITableViewDataSource.
Ini adalah PITA yang sebenarnya, tetapi saya telah mengonfirmasi dengan teknisi Apple bahwa saat ini ini adalah satu-satunya cara.
Perbarui Berikut kode untuk tampilan bg khusus itu. Ada bug gambar yang membuat sudut membulat terlihat sedikit lucu, tetapi kami pindah ke desain yang berbeda dan menghapus latar belakang khusus sebelum saya sempat memperbaikinya. Namun ini mungkin akan sangat membantu Anda:
sumber
Saya tahu jawabannya berkaitan dengan mengubah sel tabel yang dikelompokkan, tetapi jika seseorang ingin juga mengubah warna latar belakang tampilan tabel:
Anda tidak hanya perlu mengatur:
Anda juga perlu mengubah atau menghilangkan tampilan latar belakang:
sumber
Pertama-tama terima kasih untuk kode ini. Saya telah membuat beberapa perubahan gambar dalam fungsi ini untuk menghilangkan masalah sudut gambar.
sumber
Terima kasih untuk kodenya, hanya itu yang saya cari. Saya juga menambahkan kode berikut ke kode Vimal, untuk mengimplementasikan kasus sel CustomCellBackgroundViewPositionSingle. (Keempat sudut dibulatkan.)
sumber
Satu hal yang saya temukan dengan kode CustomCellBackgroundView di atas dari Mike Akers yang mungkin berguna bagi orang lain:
cell.backgroundView
tidak otomatis digambar ulang saat sel digunakan kembali, dan perubahan pada var posisi backgroundView tidak memengaruhi sel yang digunakan kembali. Itu berarti tabel panjang akan salah digambarcell.backgroundViews
mengingat posisinya.Untuk memperbaikinya tanpa harus membuat backgroundView baru setiap kali baris ditampilkan, panggil
[cell.backgroundView setNeedsDisplay]
di akhir-[UITableViewController tableView:cellForRowAtIndexPath:]
. Atau untuk solusi yang lebih dapat digunakan kembali, ganti penyetel posisi CustomCellBackgroundView untuk menyertakan file[self setNeedsDisplay]
.sumber
Terima kasih atas posting yang sangat membantu ini. Jika ada orang di luar sana (seperti saya!) Ingin memiliki latar belakang sel yang benar-benar kosong sebagai pengganti menyesuaikannya melalui gambar / teks / konten lain di IB dan tidak tahu bagaimana cara menghilangkan batas bodoh / padding / latar belakang meskipun Anda mengaturnya menjadi jelas di IB ... inilah kode yang saya gunakan yang melakukan trik!
Semoga itu bisa membantu orang lain! Sepertinya bekerja seperti pesona.
sumber
cell.backgroundView
.Terima kasih banyak untuk semua yang memposting kode mereka. Ini sangat berguna.
Saya mendapatkan solusi serupa untuk mengubah warna sorotan untuk sel tampilan tabel yang dikelompokkan. Pada dasarnya selectedBackgroundView milik UITableViewCell (bukan backgroundView). Yang bahkan pada iPhone OS 3.0 masih membutuhkan solusi PITA ini, sejauh yang saya tahu ...
Kode di bawah ini memiliki perubahan untuk menampilkan sorotan dengan gradien alih-alih satu warna solid. Juga rendering perbatasan dihapus. Nikmati.
sumber
Anda dapat menyesuaikan warna perbatasan dengan mengatur
sumber
Untuk mengubah warna batas tampilan tabel:
In.h:
Dalam .m:
sumber
Tugas ini dapat dengan mudah dilakukan menggunakan PrettyKit dengan menambahkan sekitar 5 baris kode. Jika Anda menggunakan
nib
file ataustoryboard
, jangan lupa juga untuk menerapkan hack kecil ini . Saat Anda menggunakan pendekatan ini, Anda harus membuat subkelas sel Anda dariPrettyTableViewCell
:Ini adalah contoh saya
cellForRowAtIndexPath
:sumber
Saya mengalami masalah dengan ini dan mencoba banyak kombinasi hal-hal karena saya perhatikan bahwa untuk beberapa sel berfungsi dengan baik tetapi tidak untuk yang lain.
Anehnya saya menemukan bahwa adalah mungkin untuk mengatur cell.backgroundColor menjadi lightGrayColor dan semuanya bekerja dengan sempurna - tetapi blueColor menyebabkan saya masalah karena tidak memperbarui tepi luar.
Kecuali sangat penting untuk menggunakan warna hijau - mungkin Anda mungkin ingin mencobanya. Mungkin ini adalah fitur untuk membuat orang menggunakan hanya warna abu-abu saat menunjukkan bahwa sel dipilih.
sumber