2010-05-05 13 views
16

Iphone geliştirmede yeni biriyim.İçeriğimi görüntüleyen bir tablo oluşturdum.Bir satır seçtiğimde, mavi renkle vurgulanır ve başka bir görünüme gider ve eğer arka tuşa tıklarsam geri gösteren tabloya gider. tıklatılmış hücre mavi renkte, görünümüne geri giderken vurgulanmış rengi masadaki rengi kaldırmak istiyorum. Bunu yapabilirim. Teşekkürler.iPhone'da tablo görünümünü bir kez daha gösterirken hücre seçim stili rengi nasıl kaldırılır?

cevap

14

Sonunda bunu tablo görünümü sınıfımda uygulayarak anladım.

- (void)viewWillAppear:(BOOL)animated 
{ 
    NSIndexPath *tableSelection = [self.tableView indexPathForSelectedRow]; 
    [self.tableView deselectRowAtIndexPath:tableSelection animated:NO]; 
} 
0

viewDidAppear:'un varsayılan uygulaması sizin için bununla ilgilenmelidir. Tablo görünümü denetleyicinizde bu yöntemi geçersiz kılarsanız, geçersiz kılma yönteminizde [super viewDidAppear:animated] numaralı telefonu aramayı unutmayın.

48

Bunu yapmanın genel olarak kabul edilen yolu, yeni görünüme giderken hücreyi seçimini kaldırmaktır. ViewWillAppear görünümü yerine, didSelectRowAtIndexPath ve kullanmakta olduğunuz aynı deselectRowAtIndexPath tablo görünümü temsilci yöntemini kullanın.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath{ 
    [tableView deselectRowAtIndexPath:newIndexPath animated:YES]; 
} 

(ve genel kabul görmüş, ben. Size bunun sonunda benzemeye istediğinize bağlıdır "Ben en çok örnek kodda bakın şeyler" demek)

+0

Bu bu şekilde animasyon Savaşçı yeni sahne yüklenirken ziyade sahne @ ne olduğu yeniden ortaya çıkar olarak daha oluşmasına neden hücreyi seçiminin kaldırılması kabul cevap :) – Philip007

+1

olmalıdır cevap yok. Ne istediğine bağlı, sanırım. – ele

+0

Kabul et, bu en iyi çözüm. Xamarin için – acoustic

14

Yanlış yapıyorsun, cellForRowAtIndexPath yönteminde. Eğer görünümüne geri geliyor ne vurgulanan olmamak hücreyi ne de seçim touch isterse bu doğru bir yol olacağını da UITableViewCells

günü bu

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

kullanın. Eğer sadece hücrenin geri dönüşünü seçerseniz, diğer çözümleri görmek için geri dönerseniz daha uygundur. Swift 3 için

+0

: cell.SelectionStyle = UITableViewCellSelectionStyle.None; Swift 3: cell.selectionStyle = .none; – Array

0

:

override func viewWillDisappear(_ animated: Bool) { 
     if let indexPath = self.tableview.indexPathForSelectedRow { 
      tableview.deselectRow(at: indexPath, animated: true) 
     } 
    } 
İlgili konular