热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UITableViewRowAction在iOS11中太宽

如何解决《UITableViewRowAction在iOS11中太宽》经验,应该怎么办?

我使用以下技巧,以便在表视图行动作中包含图像:

如何在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编译这样的代码,则不会定义新的委托方法(您将看到该错误).


推荐阅读
author-avatar
qaz9
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有