1

我想在单元格的左侧滑动中设置一个图像,有代码,但它不起作用。

- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {
if (@available (iOS 11, *)) {
    UIContextualAction *deleteAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:@"删除" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
        if (self.dataArray.count > indexPath.row) {
            [self.dataArray removeObjectAtIndex:indexPath.row];
            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
        }

        completionHandler(YES);
    }];

    deleteAction.backgroundColor = [UIColor blueColor];

    UIContextualAction *backAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:nil handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
        // 不做任何事
        [tableView setEditing:NO animated:YES];
        completionHandler(YES);
    }];
    backAction.image = [UIImage imageNamed:@"public_system_success"];

    UISwipeActionsConfiguration *configuration = [UISwipeActionsConfiguration configurationWithActions:@[deleteAction, backAction]];

    return configuration;
}

return nil;

}

我得到了这个向左滑动的菜单

实际上,该图像与左侧的单元格图像相同。怎么了?

4

3 回答 3

1

复选标记使用透明背面,因为UIContextualAction将图像渲染为模板,因此图像的任何填充区域都将显示为白色。

这应该是您的图像:

在此处输入图像描述

于 2018-11-07T09:09:57.580 回答
0

更改UIContextualActionStyleDestructiveUIContextualActionStyleNormal

于 2020-10-16T07:29:34.143 回答
0

检查您的图像。我认为当您滑动选择它们时,单元格正在为您的图像应用色调。试试这个.. 1. 转到 xcode 中的 assets 文件夹并选择您的图像。2. 转到右侧的属性检查器并选择“渲染为”选项并选择原始图像。3. 测试。

让我知道这是否有帮助:-)

于 2018-01-31T05:51:54.077 回答