Saya menyadari bahwa iOS 7 belum dirilis secara resmi dan kita seharusnya tidak membahasnya TAPI saya akan gila mencoba mencari tahu masalah ini. Di iOS 6, tampilan tabel saya transparan dan tampak hebat. Pertama kali menjalankan iOS 7, dan latar belakangnya putih.
Saya telah mencoba membuat backgroundColor tabel, warna sel dll menjadi UIColor clearColor tetapi tidak ada perubahan.
Bagaimana cara mengatasi masalah ini?
ios
uitableview
Teddy13
sumber
sumber
backgroundView
menjadi jelas?Jawaban:
// Fix for iOS 7 to clear backgroundColor cell.backgroundColor = [UIColor clearColor]; cell.backgroundView = [[UIView new] autorelease]; cell.selectedBackgroundView = [[UIView new] autorelease];
di cellForRowAtIndexPath
Selain itu, pastikan tampilan tabel Anda benar-benar memiliki latar belakang transparan (di papan cerita):
sumber
Taruh ini:
cell.backgroundColor = [UIColor clearColor];
Di bagian ini:
sumber
backgroundView
ke tampilan kosong, tetapi kode tambahan ini diperlukan untuk iOS 7.Coba setel backgroundView ke nol terlebih dahulu.
[self.tableView setBackgroundView:nil]; [self.tableView setBackgroundColor:[UIColor clearColor]];
Tidak yakin apakah ini adalah perubahan dalam dokumentasi dengan iOS7 atau selalu ada dan hanya tidak mempengaruhi warna latar belakang, tapi sesuai Referensi Kelas UITableView @property backgroundView
"Anda harus menyetel properti ini ke nol untuk menyetel warna latar belakang tampilan tabel."
edit: sintaks kode yang diperbaiki
sumber
Ini telah dijawab, tetapi salah dalam banyak hal.
Anda perlu menerapkan metode delegasi di bawah ini:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell setBackgroundColor:[UIColor clearColor]]; }
Anda tidak dapat menempatkan perbaikan di cellForRowAtIndexPath karena itu terjadi setelah sel dirender, dan itu akan mem-flash latar belakang putih sebelum latar belakang disetel untuk dihapus (pada perangkat yang lebih lambat).
Gunakan metode delegasi ini dan masalah Anda terpecahkan!
sumber
Sebenarnya tempat resmi yang benar untuk mengubah warna latar belakang sel berbeda menurut dokumentasi ( Referensi Kelas UITableViewCell ):
sumber
swift 3, 4 dan 5
cell.backgroundColor = UIColor.clear
sumber
Ini adalah masalah yang cukup membuat frustrasi. Inilah solusi saya saat ini:
Tambahkan ini ke
UITableViewCell
subkelas Anda .- (void)didMoveToSuperview { [super didMoveToSuperview]; self.backgroundColor = [UIColor clearColor]; }
sumber
Ini berhasil untuk saya di iOS7 +:
self.tableView.backgroundColor =[UIColor blueColor]; self.tableView.opaque = NO; self.tableView.backgroundView = nil;`
lalu masuk
cellForRowAtIndexPath:
cell.backgroundColor = [UIColor clearColor];
sumber
coba cuplikan kode ini
cell.contentView.backgroundColor = [UIColor clearColor]; cell.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.5];
sumber
Ini hanya berfungsi untuk saya ketika saya mengedit warna latar belakang yang jelas untuk setiap sel dan warna yang jelas untuk tabel itu sendiri .. KEDUA SECARA PROGRAM
untuk mengatur warna meja yang jelas:
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. initMenu() myTableView.backgroundColor = UIColor.clearColor() }
untuk mengatur warna sel:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("tablecellid", forIndexPath: indexPath) cell.backgroundColor = UIColor.clearColor() return cell }
sumber
Satu hal yang menyenangkan. Warna default UITable sepertinya putih (saya tidak tahu kenapa)
Tapi lebih baik ubah itu.
sumber
Set pertama
tableView.backgroundColor = [UIColor clearColor];
Set kedua
tableCell.backgroundColor = [UIColor clearColor];
sumber
buat Outlet IB untuk tampilan tabel @IBOutlet weak var yourTable: UITableView!
dalam tampilan beban
override func viewDidLoad() { yourTable.delegate = self yourTable.dataSource = self yourTable.backgroundColor = UIColor.clearColor() }
jika Anda ingin membersihkan warna sel juga lakukan ini di
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { cell.backgroundColor = UIColor.clearColor() }
sumber
Di aplikasi saya, saya harus mengatur
backgroundColor
diUITableViewCell
kelas saya untuk[UIColor clearColor]
diwarnai ketika saya memperbarui untukiOS 7
.sumber
Mencoba
[myTable setSeparatorStyle:UITableViewCellSeparatorStyleNone]; [myTable setSeparatorInset:UIEdgeInsetsZero];
Dan
cell.backgroundColor = [UIColor clearColor];
sumber
Dalam kasus saya, sel dibuat menggunakan xib. sepertinya pembuat antarmuka di xcode5 mengalami masalah dalam menyetel clearColor ke cell.backgroundColor.
Yang perlu saya lakukan hanyalah mengatur
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // get the cell from the nib //then force the backgroundColor cell.backgroundColor = [UIColor clearColor] return cell; }
sumber
Cukup pilih Clear Color pada View Background untuk tabel dan untuk sel juga.
sumber
cepat 3
override func viewDidLoad() { super.viewDidLoad() tableView.backgroundColor = UIColor.clear }
sumber
// Fix iOS 7 clear backgroundColor compatibility // I Think this two lines only are enough cell.backgroundColor = [UIColor clearColor]; cell.selectedBackgroundView = [[UIView new] autorelease];
sumber
Set
tableView.backgroundColor = [UIColor clearColor];
di viewDidLoad.
jika ini tidak berhasil, coba:
tableView.backgroundView = nil;
sumber
Dalam 3 cepat
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) cell.backgroundColor = .clear cell.backgroundView = UIView() cell.selectedBackgroundView = UIView() return cell }
sumber