2015-10-09 16 views
5

Tablo görünümümün hücrelerine dokunduğumda, gri bir renge koyulaşıyor ve farklı bir hücreye dokunana kadar beyaza dönme. Bunu yapmamam için bir çeşit Boole var mı?UITableViewCells, üzerlerine dokunduğumda neden gri oluyor?

İşte benim problem açıklayan bir ekran görüntüsü: bu daha ayrıntılı bir açıklama anlamına gelecektir eğer diğer web sitelerine

enter image description here

Linkler, yararlı olacaktır. (Sürece o zaman süper basit bir düzeltme, bu doğru kod veya adımlar-to-alacak bir bağlantı daha kolay olurdu.)

+0

Yani, bir hücreye bastığınızda, gri işaretini değil, onay işaretini mi istiyorsunuz? –

cevap

15

Bu, UITableView öğesinin varsayılan davranıştır.

UITableViewController sınıfınızın içinde didSelectRowAtIndexPath'un içinde deselectRowAtIndexPath'u aramanız gerekir.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    tableView.deselectRowAtIndexPath(indexPath, animated: true) 
} 

Daha fazla bilgi için iOS Belgelerine bakın.

UITableView
UITableViewDelegate

Sen tarafından stilini değiştirebilirsiniz
+0

Geç cevap için özür dilerim. Bu tam olarak istediğimi yaptı. Sağol Qasim! –

+0

Teşekkürler. Zamanım geçti. –

+0

@Anthony Dito'nun yanıtını düşünün. Bu, dokunduğunuzda bir yanıp sönen griyi önler. – Carl

6

Buna birkaç şekillerde yapabilirsiniz ...

  1. tableView.allowsSelection = false

  2. Dördüncü sekmenin altında herhangi bir seçim olmaması için tabloyu xCode Storyboard'da ayarlayabilirsiniz.

  3. Veya, istediğiniz ne hücreye cell.selectionStyle = UITableViewCellSelectionStyle.None

üzerinde yapabilirsiniz sonuçta sonra neler olduğunu davranışı hakkında olacak. Sadece biraz deneme yap.

1

:

[cell setSelectionStyle:UITableViewCellSelectionStyleGray]; 
3

Swift 3

Seçenek 1: (Ben her zaman kullanmak Hangi)

vermek Eğer bunu yapabilirsiniz sonra gri ile seçilen animasyon karartmak:

func tableView(_ tableView: UITableView, 
     didSelectRowAt indexPath: IndexPath) { 
    tableView.deselectRow(at: indexPath, animated: true) 
} 

Seçenek 2:

tamamen size cellForRowAt için bu satırı ekleyebilirsiniz vurgulamak etkisini kaldırmak için:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = ..... 
    cell.selectionStyle = .none 
    return cell 
} 
+1

Seçenek 2, belirlediğim renkten önce gri arka plan efektini yanıp sönme sorunumu çözmeme yardımcı oldu. Çok teşekkürler! – user30646

+0

@ user30646 Size yardımcı olduğu için mutluyuz :) – MBH

1

Swift 3

Özel hücrede şunu ekleyin:

override func awakeFromNib() { 
    super.awakeFromNib() 
    selectionStyle = .none 
} 

Bu hücre dokunulduğunda bile gri görmez sağlar. UITableViewDelegate'deki bu kod, yalnızca dokunduğunuzda seçimini kaldırır.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    tableView.deselectRow(at: indexPath, animated: true) 
} 
İlgili konular