2017-09-28 65 views
8

Bir UITableViewCell beklenmedik beyaz arka plan silme iOS 11 cihazında bazı nedenlerle göründüğü halde, tüm arka plan renkleri storyboard'da mavi olarak ayarlanmış (iOS10'da iyi çalışıyor). iOS 11/Xcode 9: UITableViewCell beyaz arka plan yanıp sönüyor silme

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
     [self.bookmarks removeObjectAtIndex:indexPath.row];    
     [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
    } 
} 

sorunu çözmezse, UITableViewRowAnimation her türlü çalıştı.

enter image description here

+0

Ben de bu sorunu yaşıyorum. Hücrenin 'backgroundView' öğesini beyaz olmayan bir arka plana sahip bir görünüme ayarlamanın bir etkisi yoktur. –

+0

Zaten tabloView 've hücre görünümleri (contentVieц/accessoryView) arka plan/renk tonları etrafında hiçbir etkisi olmadan oynadı ... –

+0

Bu sorun için Apple ile bir hata dosyalanır mı? –

cevap

6

Deneyin (yerine appearanceWhenContainedInInstancesOfClasses seçebilirsiniz). Birazdan bir satır silindikten sonra tablo görünümü yeniden eğer

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    ... 

    [[UITableViewCell appearance] setBackgroundColor:[UIColor clearColor]]; 

    return YES; 
} 
+0

Bu sorunun simülatörde düzeltildiğini doğruladım. – Kawatan

+0

Evet, tüm arka plan renklerini temizlemek için ayarladım (hala mavi olan tableView.backgroundColor hariç) ve proxy'yi önerdiğiniz şekilde uyguladı - işe yarıyor! Teşekkür ederim! –

+0

Çalışıyor! Swift 4: UITableViewCell.appearance() backgroundColor = .clear' – Geek20

0

Tamam, animasyon uzağa gider ama en azından hiçbir garip yanıp beyaz arka plan var:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
     [self.bookmarks removeObjectAtIndex:indexPath.row];    
     [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
     if (@available (iOS 11, *)) 
     { 
      [self.tableView reloadData]; 
     } 
    } 
} 

enter image description here

Neyse bulunuyor en iyi çözüm değil = (

0

Sadece bir öneri: Tüm öğelerin saydam arka plan rengine veya kullandığınız açık maviye sahip olduğundan emin olun. e hala beyaz arka plan rengine sahip olan, hücre içeriği görünümü (varsa) veya hücre arka planı olabilir.