作者:qaz9 | 来源:互联网 | 2023-01-18 15:43
我使用以下技巧,以便在表视图行动作中包含图像:
如何在iOS8.0中管理UITableViewRowAction的相等宽度?(更多,删除等动作)
UITableViewRowAction *completeAction = [UITableViewRowAction
rowActionWithStyle:UITableViewRowActionStyleNormal
title:@" "
handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
...
}];
completeAction.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"MyImageHere"]];
但它不再适用于iOS 11 - 行动作按钮的宽度对于我的图像来说太大了所以它会重复:
有没有解决这个问题?
更新:
我最终使用了iOS 11中引入的新的尾随/前导上下文操作API:
https://developer.apple.com/documentation/uikit/uicontextualaction
此API允许您在操作中包含图像等.
#if defined __IPHONE_11_0 && __has_builtin(__builtin_available)
// This will be called on iOS 11+ if compiling with Xcode 9.
- (id)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {
if (@available(iOS 11.0, *)) {
UISwipeActionsConfiguration *cOnfiguration= ...
return configuration;
}
return nil;
}
#endif
// This will be called on iOS 10 and older.
- (NSArray *)tableView:(UITableView *)tableView
editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
// Old style row actions.
}
请注意,如果使用Xcode 8编译这样的代码,则不会定义新的委托方法(您将看到该错误).