2011-04-17 18 views
10

UITableviewCell'im var. Bir kullanıcı hücreyi tıklattığında, dizin yolunu kaydediyorum ve sonra hücreyi almak için cellforrowAndImpath yöntemini çağırıyorum ve sonra bu hücrede SetHighlighted: TRUE öğesini çağırıyorum.UITableViewCell vurgulu durumu nasıl yapılır

Bu iyi çalışıyor, ancak tablo görünümünde yukarı ve aşağı kaydırma yaptığımda sorun, yeniden seçildiğinde seçili hücre vurgulanmıyor. Vurgulanan mavi rengin nasıl kalıcı hale getirilmesini sağlayabilirim ki, kullanıcı tabloyu yukarı veya aşağı kaydırdıktan sonra bile onların seçimini görsel olarak görebilir mi?

Teşekkür

cevap

19

seçilen hücrenin

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedIndexPath = indexPath; 
} 

ait indexPath kaydedip Ancak

tableVIew:cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    // configure cell 
    if ([indexPath isEqual:self.selectedIndexPath]) { 
     [cell setHighlighted:YES]; 
    } 
    else { 
     [cell setHighlighted:NO]; 
    } 
    return cell; 

} 
karşılaştırmak, elma hücre vurgulamak devlet kullanımını teşvik etmemektedir unutmayın Seçilen hücreyi gösterir. Muhtemelen cell.accessoryType = UITableViewCellAccessoryCheckmark;

+0

'u kullanmalısınız. Teşekkürler, şimdi deneyeceğim. – banditKing

+0

Cevabınız için teşekkürler. Ama zaten bir detaildisclosureindicator olarak bir aksesuar var. Bu yüzden hücreyi vurgulamak istedim. Apple ile sorun olur mu? Tavsiyen nedir? Teşekkürler – banditKing

+0

Onlarla tamam olup olmadığını asla bilemezsin. Bazen HIG konusunda gerçekten katıdırlar, bazen çok fazla değil. Sadece olduğu gibi göndermeyi denerim. En kötü durum senaryosunu reddediyorlar ve değiştiriyorsunuz. –