UITableView'ın hücre vurgu rengini kaldırın


110

Uitableview hücre seçiminin varsayılan mavi rengini kaldırmak istiyorum. Orada seçim rengi istemiyorum. Özel bir hücre sınıfı oluşturmadım. Üzerine etiketler ve düğmeler ekleyerek hücreyi özelleştiriyorum. Yapmayı denedim:

cell.selectioncolor = [UIColor clearcolor];

ancak bu yöntemin kullanımdan kaldırıldığını söylüyor.

Yanıtlar:


323
cell.selectionStyle = UITableViewCellSelectionStyleNone;

içinde Swift 4 güncellendi

cell.selectionStyle = UITableViewCell.SelectionStyle.none

Veya

cell.selectionStyle = .none

3
Bu kodu cellForRowAtIndexPath içinde tuttum: saklanacak tam yer burası mı?
Pawriwes

9
@Pawriwes, evet. Doğru hatırlıyorsam, Arayüz Oluşturucuyu kullanarak hücrenizi oluşturursanız, hücrenin XIB'sinde bu özelliği de ayarlayabilirsiniz
Vladimir

4
Bunu yaparsam, düzenleme sırasında hücreyi
seçmez

54

StoryboardVeya içinde bunu seçinXIB


görüntü açıklamasını buraya girin


7
ayrıca, "tablo görünümünde" hücre seçmediğinizden daha değiştirirseniz "Tablo Görünümü Hücresi " ni işaretlemeniz gerekir.
Kernelzero

2
@Pulkit bu doğru değil. Bu, yalnızca hücrenin seçim durumunu devre dışı bırakır. Bunun, içinde görüntülenen verilerle veya bunların etkileşimini ele almasıyla ilgisi yoktur. Tüm uygun kayıt setine sahip olduğunuzdan ve diğer işlevleri geçersiz kılmadığınızdan emin olun.
Michael

bu tamamen yanlış
Şişko

12
// Swift 2.0

cell.selectionStyle = UITableViewCellSelectionStyle.None

5
Ya da doğrudan enum değerini kullanabilirsiniz cell.selectionStyle = .None
Steve


6

Objective-C:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

veya

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Swift 4:

self.selectionStyle = UITableViewCellSelectionStyle.none;

Swift 3:

cell.selectionStyle = .none

Swift 2:

cell.selectionStyle = UITableViewCellSelectionStyle.None

Sadece Storyboard / Xib kullanarak değiştirmek istiyorsanız, "Seçim Stili Efekti" ni kaldırmak istediğiniz Hücreyi seçin ve "Yok" olarak tanımlayın. Aynı zamanda sihir gibi çalışacak: D

Storyboard / Xib


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

5

TableView Seçim stilini olarak ayarlamak, uygulamamdaki tablo görünümünün .noneyanıt verme hızını ve performansını etkiliyordu ( didSelectRowAt indexPathdokunmalar gecikiyordu). Bu soruna çözümüm awakeFromNib(), hücre ilk oluşturulduğunda seçilen arka plan görünümünü gizlemekti :

selectedBackgroundView?.isHidden = true


4

Bunu hızlı bir şekilde dene

cell?.selectionStyle = UITableViewCellSelectionStyle.None

2

Do it hücrede :

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

    ...
}

İşte bu kadar kolay.


0

hızlı 5

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

        return cell
    }  

0

doğru cevap şöyle olmalıdır:

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

Seçim türü, .noneistediğiniz şeyi ARTI diğer istenmeyen yan etkileri de üretmek üzere ayarlandığında farklı bir özelliktir .

Eğer hücre olmak istemiyorsanız vurgulanan , o zaman zaman olarak arka plan görünümün rengi aynı hale değil vurguladı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.