Bagaimana saya bisa mengubah warna header bagian di UITableView?
EDIT : Jawaban yang diberikan oleh DJ-S harus dipertimbangkan untuk iOS 6 ke atas. Jawaban yang diterima sudah usang.
ios
uitableview
cocoa-touch
Ilya Suzdalnitski
sumber
sumber
Jawaban:
Semoga metode dari
UITableViewDelegate
protokol ini akan membantu Anda memulai:Tujuan-C:
Cepat:
Diperbarui 2017:
Swift 3:
Ganti
[UIColor redColor]
dengan mana yangUIColor
Anda inginkan. Anda mungkin juga ingin menyesuaikan dimensiheaderView
.sumber
[UIColor xxxColor]
namun ketika saya mencoba warna kustom seperti yang bisa saya dapatkan dari photoshop (jadi menggunakanUIColor red:green:blue:alpha:
, itu hanya putih. Apakah saya melakukan sesuatu yang salah?Ini adalah pertanyaan lama, tetapi saya pikir jawabannya perlu diperbarui.
Metode ini tidak melibatkan mendefinisikan dan membuat tampilan kustom Anda sendiri. Di iOS 6 dan yang lebih tinggi, Anda dapat dengan mudah mengubah warna latar dan warna teks dengan mendefinisikan
metode delegasi bagian
Sebagai contoh:
Diambil dari posting saya di sini: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/
Cepat 3/4
sumber
header.contentView.backgroundColor = [UIColor blackColor];
opsi akan memberi Anda sundulan buramBerikut cara mengubah warna teks.
sumber
Anda dapat melakukan ini jika Anda ingin tajuk dengan warna khusus:
Solusi ini berfungsi dengan baik sejak iOS 6.0.
sumber
Solusi berikut ini berfungsi untuk Swift 1.2 dengan iOS 8+
sumber
Mengatur warna latar belakang pada UITableViewHeaderFooterView telah ditinggalkan. Silakan gunakan
contentView.backgroundColor
sebagai gantinya.sumber
Jangan lupa untuk menambahkan potongan kode ini dari delegasi atau tampilan Anda akan terpotong atau muncul di belakang tabel dalam beberapa kasus, relatif terhadap ketinggian tampilan / label Anda.
sumber
Anda dapat melakukannya di main.storyboard dalam sekitar 2 detik.
sumber
Jika Anda tidak ingin membuat tampilan khusus, Anda juga dapat mengubah warna seperti ini (memerlukan iOS 6):
sumber
Tetapkan latar belakang dan warna teks area bagian: (Terima kasih kepada
William Jockusch
danDj S
)sumber
Cepat 4
Untuk mengubah warna latar belakang , warna label teks dan font untuk Tampilan Header dari Bagian UITableView, cukup timpa
willDisplayHeaderView
untuk tampilan tabel Anda seperti:Ini bekerja dengan baik untuk saya; harap itu membantu Anda juga!
sumber
Berikut cara menambahkan gambar dalam tampilan tajuk:
sumber
Untuk iOS8 (Beta) dan Swift pilih Warna RGB yang Anda inginkan dan coba ini:
}
("Override" sudah ada sejak saya menggunakan UITableViewController alih-alih UIViewController normal dalam proyek saya, tetapi itu tidak wajib untuk mengubah warna bagian header)
Teks tajuk Anda masih akan terlihat. Perhatikan bahwa Anda harus menyesuaikan tinggi tajuk bagian.
Semoga berhasil.
sumber
SWIFT 2
Saya berhasil mengubah warna latar belakang bagian dengan efek blur tambahan (yang sangat keren). Untuk mengubah warna latar belakang bagian dengan mudah:
Kemudian untuk efek blur, tambahkan ke kode:
sumber
Saya tahu jawabannya, kalau-kalau, In Swift menggunakan yang berikut ini
sumber
iOS 8+
sumber
Berdasarkan jawaban @Dj S, menggunakan Swift 3. Ini berfungsi baik di iOS 10.
sumber
Saya punya proyek menggunakan sel tampilan tabel statis, di iOS 7.x. willDisplayHeaderView tidak menyala. Namun, metode ini berfungsi dengan baik:
sumber
sumber
Saya pikir kode ini tidak terlalu buruk.
sumber
Swift 4 membuatnya sangat mudah. Cukup tambahkan ini ke kelas Anda dan atur warnanya sesuai kebutuhan.
atau jika warnanya sederhana
Diperbarui untuk Swift 5
atau jika warnanya sederhana
sumber
Di iOS 7.0.4 saya membuat header khusus dengan XIB itu sendiri. Tidak ada yang disebutkan di sini sebelum bekerja. Itu harus menjadi subclass dari UITableViewHeaderFooterView untuk bekerja dengan
dequeueReusableHeaderFooterViewWithIdentifier:
dan tampaknya kelas sangat keras kepala mengenai warna latar belakang. Jadi akhirnya saya menambahkan UIView (Anda bisa melakukannya dengan kode atau IB) dengan nama customBackgroudView, dan kemudian mengatur properti backgroundColor. Di layoutSubviews: Saya mengatur bingkai tampilan itu menjadi batas. Ini bekerja dengan iOS 7 dan tidak memberikan gangguan.sumber
Ubah saja warna layer dari tampilan header
sumber
Jika ada yang butuh cepat, pertahankan judul:
sumber
Saya mendapat pesan dari Xcode melalui konsol log
Lalu saya hanya membuat UIView baru dan meletakkannya sebagai latar belakang HeaderView. Bukan solusi yang baik tetapi mudah seperti kata Xcode.
sumber
Dalam kasus saya, ini berfungsi seperti ini:
sumber
Cukup atur warna latar belakang tampilan latar belakang:
sumber
Dengan RubyMotion / RedPotion, rekatkan ini ke TableScreen Anda:
Bekerja seperti pesona!
sumber
Untuk swift 5+
Dalam
willDisplayHeaderView
MetodeSaya harap ini membantu Anda:]
sumber
Meskipun
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
akan bekerja dengan baik, Anda dapat mencapainya tanpa menerapkan metode delegasi lain. dalamfunc tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
metode Anda , Anda dapat menggunakanview.contentView.backgroundColor = UIColor.white
alih-alihview.backgroundView?.backgroundColor = UIColor.white
yang tidak berfungsi. (Saya tahu itubackgroundView
opsional, tetapi bahkan ketika itu ada, ini tidak terbangun tanpa implementasiwillDisplayHeaderView
sumber