UITableViewRowAction 的图标在 iOS 13 上显示,但在 iOS 12 上不显示
Posted
技术标签:
【中文标题】UITableViewRowAction 的图标在 iOS 13 上显示,但在 iOS 12 上不显示【英文标题】:Icon for UITableViewRowAction is shown on iOS 13, but not on iOS 12 【发布时间】:2020-05-23 10:00:51 【问题描述】:好的,我遇到了UITableViewRowAction
的一个奇怪行为(错误)。我正在尝试向左滑动操作添加图标。
下面是我在表格视图委托的tableView(_:trailingSwipeActionsConfigurationForRowAt:)
方法中设置图标的代码(操作是UIContextualAction
的一个实例):
action.image = UIGraphicsImageRenderer(size: Constants.swipeActionImageSize)
.image(actions: _ in
Constants.messageReplyIcon.draw(in: CGRect(origin: .zero,
size: Constants.swipeActionImageSize))
)
我正在使用此解决方案,因为需要稍微调整图像大小。这在 ios 13 上运行良好,但在 iOS 12 上(实际上,在 iOS 12.2 上运行),它将图像呈现为白色圆圈。下面,你可以看到iOS 13模拟器和iOS 12.2模拟器上的图标截图一个接一个。
iOS 13
iOS 12.2
请注意,即使我只是简单地设置图像,而没有做所有花哨的调整大小的事情,也会发生这种情况。
但是,当我在 iOS 12 上查看 UI 调试器中的图像时,我看到以下内容:
我怀疑,UIContextualAction
对 iOS 12 上的图标应用了一些淡色,但无法弄清楚原因,因此无法找到解决方案。
也许,您遇到过这样的事情,或者对原因有什么想法?提前致谢。
【问题讨论】:
您找到任何解决方案了吗? 【参考方案1】:UIContextualAction
在旧版本的 iOS 上将图像转换为将被涂成白色的模板。尽管文档没有说明任何内容。
查看模板:
https://developer.apple.com/documentation/uikit/uiimage/providing_images_for_different_appearances https://developer.apple.com/documentation/uikit/uiimage/renderingmode【讨论】:
以上是关于UITableViewRowAction 的图标在 iOS 13 上显示,但在 iOS 12 上不显示的主要内容,如果未能解决你的问题,请参考以下文章
更改 UITableViewRowAction 内的单元格背景颜色
使用 UITableViewRowAction 执行 segue 控制
如何在 Objective-C 的 UITableView 中使 UITableViewRowAction 完全透明