UIContextualAction不可见标题(UITableView滑动删除 - iOS 11)

时间:2017-10-29 18:08:43

标签: ios uitableview ios11 uitableviewrowaction

我正在使用UIContextualAction来实现滑动以删除UITableViewCell的功能。我使用+ (instancetype)contextualActionWithStyle:(UIContextualActionStyle)style title:(nullable NSString *)title handler:(UIContextualActionHandler)handler方法构造UIContextualAction,然后使用setImage:属性为其设置图像。

但是,当我运行此代码并尝试滑动删除时,菜单中只显示图像。标题丢失了。当我注释掉setImage属性时,会显示标题。为什么会这样?我是否遗漏了实施中的内容,或者这是Apple的错误?

2 个答案:

答案 0 :(得分:5)

Vehicle_id | Owner_ID | Vehicle_Buy_Date -------------------------------------------- 1 | 1 | 01/01/2015 1 | 2 | 01/10/2014 1 | 3 | 01/10/2013 2 | 4 | 10/10/2016 ... | ... | ... 9 | 123 | 10/10/2017 支持 text 图片。通过使用UIContextualAction设置图像,您基本上可以删除创建对象时设置的标题。如果您想要文本图像,则必须创建包含嵌入文本的图像。

修改

我的回答是基于我自己的经验,不幸的是,该特定班级的官方文档根本没有帮助。我还发现了一个关于问题的提示here"通过指定图像,初始化程序中的标题不显示" )。

在评论中,您说如果高度> 91px,则会显示标题和图片。这匹配radar(它表示高度应该> = 91px),所以它可能是一个错误。

目前看来,唯一的选择是创建带有嵌入文本的图像,或者将单元格高度增加到91px。

答案 1 :(得分:0)

作为解决方案,我们可以使用UIGraphicsImageRenderer

将文本渲染为图像
let renderer = UIGraphicsImageRenderer(bounds: bounds)
contextAction.image = renderer.image { context in
    // draw your image and text using Core Graphics API here
}

这是解决方法,但Apple没有提供另一种方法...