我正在使用UIContextualAction
来实现滑动以删除UITableViewCell
的功能。我使用+ (instancetype)contextualActionWithStyle:(UIContextualActionStyle)style title:(nullable NSString *)title handler:(UIContextualActionHandler)handler
方法构造UIContextualAction
,然后使用setImage:
属性为其设置图像。
但是,当我运行此代码并尝试滑动删除时,菜单中只显示图像。标题丢失了。当我注释掉setImage
属性时,会显示标题。为什么会这样?我是否遗漏了实施中的内容,或者这是Apple的错误?
答案 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没有提供另一种方法...