iOS 11/Xcode 9: UITableViewCell 白色背景在删除时闪烁
iOS 11/Xcode 9: UITableViewCell white background flickers on delete
在 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,没有解决问题。
尝试一下(您可以选择 appearanceWhenContainedInInstancesOfClasses)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[[UITableViewCell appearance] setBackgroundColor:[UIColor clearColor]];
return YES;
}
只是一个建议:确保所有元素都具有透明背景色或您使用的浅蓝色。显然还有一个仍然具有白色背景颜色,可能是单元格内容视图(如果有的话)或单元格背景。
我尝试了所有可能的方法,唯一有效的是
添加
UITableViewCell.appearance().backgroundColor = UIColor.clear
在 didFinishLaunchingWithOptions
在 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,没有解决问题。
尝试一下(您可以选择 appearanceWhenContainedInInstancesOfClasses)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[[UITableViewCell appearance] setBackgroundColor:[UIColor clearColor]];
return YES;
}
只是一个建议:确保所有元素都具有透明背景色或您使用的浅蓝色。显然还有一个仍然具有白色背景颜色,可能是单元格内容视图(如果有的话)或单元格背景。
我尝试了所有可能的方法,唯一有效的是
添加
UITableViewCell.appearance().backgroundColor = UIColor.clear
在 didFinishLaunchingWithOptions