Reputation: 21
I want to set a image in the left swipe of cell, there is the code, but It doesn't work.
- (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;
}
I got this left swipe menu
In fact the image is the same with cell image in the left. What's wrong?
Upvotes: 1
Views: 1884
Reputation: 1
Change UIContextualActionStyleDestructive
to UIContextualActionStyleNormal
Upvotes: 0
Reputation: 349
Use transparent back for the checkmark, because UIContextualAction
renders images as templates, so any filled area of the image will appear white.
This should be your image:
Upvotes: 1
Reputation: 43
Check your image. I think the cell is applying a tint to your images when u swipe select them. Try this.. 1. Go to assets folder in xcode and select your image. 2. Go to Property Inspector on the right and select "render as" options and choose Original Image. 3. test.
Let me know if that helped :-)
Upvotes: 0