You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TableView侧滑动作自定义UIImage显示异常求助

解决TableView侧滑动作自定义图片只显示白色圆形的问题

哈哈,这个问题我之前踩过一模一样的坑!大概率是图片渲染模式或者Asset配置的问题,UIContextualAction对图片的渲染逻辑有点特殊,咱们一步步来排查解决:

1. 先改代码调整图片渲染模式(最快见效)

UIContextualAction默认会把设置的image当成模板图(Template)来处理——也就是只保留图片的alpha通道(形状),然后用系统的tintColor给形状上色。如果你的tintColor是白色,那自然就只显示白色圆形了。

你可以手动让图片保留原本的颜色,只需要给图片加上withRenderingMode(.alwaysOriginal):

// 替换你原来的image赋值代码
if molecule.isFavorite == true {
    favouriteStatus = false
    image = #imageLiteral(resourceName: "unflagged").withRenderingMode(.alwaysOriginal)
} else {
    favouriteStatus = true
    image = #imageLiteral(resourceName: "flagged").withRenderingMode(.alwaysOriginal)
}

2. 或者直接在Asset Catalog里改图片属性

如果不想动代码,也可以直接在Xcode里调整图片的配置:

  • 打开你的Asset目录,选中flagged和unflagged图片
  • 在右侧的属性检查器里找到Render As选项
  • 把默认的Template Image改成Original Image
    这样图片就会以原本的颜色显示,不会被系统替换色调了。

3. 额外排查点:确认图片本身的透明度

如果上面两步都没用,那得检查下你的图片本身是不是有透明背景:要是橙色旗帜的背景是白色且没有透明通道,系统识别模板的时候会把整个圆形都当成形状,自然就只会显示白色啦。

另外小补充:如果想让侧滑动作更好看,可以给flagAction设置backgroundColor,和你的橙色旗帜搭配起来效果会更协调~

内容的提问来源于stack exchange,提问作者Trichophyton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:19:33