2017-09-28 37 views
8

Trên thiết bị iOS 11 khi xóa nền trắng bất ngờ UITableViewCell xuất hiện vì lý do nào đó, tất cả màu nền được đặt thành màu xanh lam trong bảng phân cảnh (hoạt động tốt trên iOS10).iOS 11/Xcode 9: UITableViewCell nền trắng nhấp nháy khi xóa

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

thử tất cả các loại UITableViewRowAnimation, không giải quyết được vấn đề.

enter image description here

+0

Tôi cũng gặp sự cố này. Đặt 'backgroundView' của ô thành chế độ xem có nền không phải màu trắng không có hiệu lực. –

+0

Tôi đã chơi xung quanh chế độ xem tableView và ô (contentVieц/accessoryView) màu nền/màu không có hiệu lực ... –

+0

Nếu một lỗi được gửi với Apple cho vấn đề này? –

Trả lời

6

Hãy thử nó (bạn có thể chọn appearanceWhenContainedInInstancesOfClasses thay).

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

    ... 

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

    return YES; 
} 
+0

Tôi xác nhận rằng nó đã được khắc phục sự cố này trên trình mô phỏng. – Kawatan

+0

Vâng, tôi đã thiết lập tất cả các màu nền để xóa (ngoại trừ tableView.backgroundColor mà vẫn là màu xanh) và triển khai proxy như bạn đề xuất - nó hoạt động! Cảm ơn bạn! –

+0

Nó hoạt động! Swift 4: 'UITableViewCell.appearance(). BackgroundColor = .clear' – Geek20

0

Ok, nếu tôi tải lại xem bảng bên phải sau khi xóa liên tiếp, các hình ảnh động sẽ biến mất nhưng ít nhất không có lạ nhấp nháy trên nền trắng:

- (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

Dù sao nó không phải giải pháp tốt nhất = (

0

Chỉ cần một gợi ý: Đảm bảo tất cả các yếu tố đều có màu nền trong suốt hoặc màu xanh lam nhạt bạn đang sử dụng. e là một màu vẫn có màu nền trắng, có thể là dạng xem nội dung ô (nếu bạn có) hoặc nền ô.

Các vấn đề liên quan