Hapus warna sorotan sel UITableView


110

Saya ingin menghapus warna biru default dari pemilihan sel uitableview. Saya tidak ingin ada warna pilihan di sana. Saya belum membuat kelas sel khusus. Saya menyesuaikan sel dengan menambahkan label dan tombol di atasnya. Saya mencoba melakukan:

cell.selectioncolor = [UIColor clearcolor];

tetapi dikatakan bahwa metode ini tidak digunakan lagi.

Jawaban:


322
cell.selectionStyle = UITableViewCellSelectionStyleNone;

di Swift 4 diperbarui

cell.selectionStyle = UITableViewCell.SelectionStyle.none

Atau

cell.selectionStyle = .none

3
Saya menyimpan kode itu di cellForRowAtIndexPath :, apakah itu tempat yang tepat untuk menyimpannya?
Pawriwes

9
@Pawriwes, ya. Jika saya ingat dengan benar, Anda juga dapat mengatur properti itu di XIB sel jika Anda membuat sel menggunakan Interface Builder
Vladimir

4
Jika saya melakukannya, saat mengedit, itu tidak memilih sel :(
AsifHabib

54

Pilih ini di StoryboardatauXIB


masukkan deskripsi gambar di sini


7
Selain itu, Anda harus mencentang "Tabel Tampilan Sel " jika Anda mengubah "tampilan tabel" daripada Anda tidak memilih sel.
Kernelzero

2
@Pulkit itu tidak benar. Ini hanya akan menonaktifkan status pemilihan sel. Ini tidak ada hubungannya dengan data yang ditampilkan di dalamnya atau menangani interaksinya. Periksa untuk memastikan Anda memiliki semua set registrasi yang benar dan tidak menimpa fungsi lain.
Michael

ini sepenuhnya salah
Fattie

12
// Swift 2.0

cell.selectionStyle = UITableViewCellSelectionStyle.None

5
Atau Anda dapat menggunakan nilai enum secara langsung cell.selectionStyle = .None
Steve


6

Objective-C:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

atau

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Cepat 4:

self.selectionStyle = UITableViewCellSelectionStyle.none;

Cepat 3:

cell.selectionStyle = .none

Cepat 2:

cell.selectionStyle = UITableViewCellSelectionStyle.None

Jika Anda ingin mengubahnya hanya dengan menggunakan Storyboard / Xib, cukup pilih Sel yang ingin Anda hapus "Efek Gaya Pilihan" dan tentukan sebagai "Tidak Ada". Ini akan bekerja seperti sulap juga: D

Papan Cerita / Xib


1
Swift 4: cell.selectionStyle = UITableViewCell.SelectionStyle.none
Naval Hasan

5

Menyetel gaya Pilihan TableView .nonememengaruhi respons dan kinerja tampilan tabel di aplikasi saya ( didSelectRowAt indexPathkeran tertunda). Solusi saya untuk masalah ini adalah menyembunyikan tampilan latar belakang yang dipilih awakeFromNib()saat sel pertama kali dibuat:

selectedBackgroundView?.isHidden = true



2

Lakukan di dalam sel :

class YourCell:  UITableViewCell {
    
    override func didMoveToSuperview() {
        selectionStyle = .none
    }

    ...
}

Semudah itu.


0

cepat 5

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
        cell.selectionStyle = .none

        return cell
    }  

0

jawaban yang benar seharusnya:

cell.selectedBackgroundView?.backgroundColor = <choose your color>

Jenis pilihan adalah properti yang berbeda ketika diatur ke .none menghasilkan apa yang Anda inginkan PLUS efek samping lain yang tidak diinginkan.

Jika Anda tidak ingin sel disorot , buat warna tampilan latar belakangnya sama seperti saat tidak disorot.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.