首页 > 解决方案 > UIImageView tintColor 设置,无论如何都不对图像应用颜色

问题描述

我的应用中有一个 UIImageView 显示静态图像。图像在资产管理器中设置为始终模板。这是在运行时捕获接口时的检查器:

选择图像视图时的检查器。

似乎正在设置 tintColor ,但没有应用它(或什么??)。以下是来自上述同一面板的可访问性信息:

可访问性信息

我试图用这个问题修复它,但它不会改变外观。这是我正在使用的代码(嵌套在 layoutSubview 中):

// mode is always set to `.alwaysTemplate` and the below branch
// never executes.
let mode = promptImageView?.image?.renderingMode
if mode != .alwaysTemplate {
    if let image = promptImageView?.image {
        let newImage = image.withRenderingMode(.alwaysTemplate)
        promptImageView!.image = newImage
    }
}

标签: iosswiftcocoa-touch

解决方案


这似乎是 Interface Builder 和代码之间的错误。多次将 tintColor 设置为相同颜色时,它不会在运行时更改为目标颜色。在这里,我通过更改 Interface Builder 中的颜色来修复它,因为.tintColor它是在视图出现之前设置的。

.xib通过将文件中的颜色更改为预期颜色以外的颜色进行修复。在这里,我将其从白色更改为棕色:

在此处输入图像描述


推荐阅读