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

iOS应用中自定义图片颜色异常改变问题求助

问题分析与解决

原因

你的铃铛图片变色,是因为UITableViewCell的accessoryView会继承cell的tintColor属性,而如果你的图片是模板类型(Template Image)(即图片的Render As设置为Template Image),iOS会自动用cell默认的蓝色tintColor重新渲染图片,直接覆盖了图片原本的红色。

解决办法

有三种实用的修复方式,可根据需求选择:

  • 代码层面修改图片渲染模式
    加载图片时指定以原始颜色渲染,不受tintColor影响:

    UIImage *alertImage = [[UIImage imageNamed:@"alert_bell"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:alertImage];
    // 后续代码保持不变
    
  • 修改cell的tintColor
    若想保留模板图片的可染色特性,直接把cell的tintColor改成红色即可:

    cell.tintColor = [UIColor redColor];
    

    模板图片会自动被渲染为设定的红色。

  • 界面操作修改图片资源属性
    打开Assets.xcassets找到alert_bell图片,在右侧属性面板将Render As设置为Original Image,图片默认就会以原始颜色加载,无需修改代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:22:06