【问题标题】:iOS 11/Xcode 9: UITableViewCell white background flickers on deleteiOS 11/Xcode 9:删除时 UITableViewCell 白色背景闪烁
【发布时间】:2018-03-10 16:16:32
【问题描述】:

在 iOS 11 设备上删除 UITableViewCell 时由于某种原因出现意外的白色背景,但情节提要中的所有背景颜色都设置为蓝色(在 iOS10 上工作正常)。

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

尝试了所有类型的UITableViewRowAnimation,都没有解决问题。

【问题讨论】:

  • 我也有这个问题。将单元格的backgroundView 设置为非白色背景的视图无效。
  • 我已经玩过 tableView' 和单元格的视图 (contentVieц/accessoryView) 背景/色调颜色没有效果...
  • 是否应该针对这个问题向 Apple 提交错误?
  • 我已经提交了一个错误报告,苹果目前没有任何消息
  • 您介意发布报告链接吗?

标签: uitableview ios11 xcode9


【解决方案1】:

试试看(您可以选择外观当包含在实例中)。

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

    ...

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

    return YES;
}

【讨论】:

  • 我确认已经在模拟器上解决了这个问题。
  • 是的,我已将所有背景颜色设置为清除(tableView.backgroundColor 除外,它仍然是蓝色的)并按照您的建议实现了代理 - 它有效!谢谢!
  • 有效!斯威夫特 4:UITableViewCell.appearance().backgroundColor = .clear
  • 不是一个优雅的解决方案,但它是唯一有效的方法。
【解决方案2】:

我尝试了所有可能的方法,唯一有效的是

添加

UITableViewCell.appearance().backgroundColor = UIColor.clear

didFinishLaunchingWithOptions

【讨论】:

    【解决方案3】:

    只是一个建议:确保所有元素都具有透明的背景颜色或您正在使用的浅蓝色。显然有一个仍然具有白色背景颜色,可能是单元格内容视图(如果有的话)或单元格背景。

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2020-05-11
      • 1970-01-01
      • 2021-01-23
      相关资源
      最近更新 更多