图像的色调颜色不变

Posted

技术标签:

【中文标题】图像的色调颜色不变【英文标题】:Tint color of image not changing 【发布时间】:2017-09-04 09:45:53 【问题描述】:

我有一个用集合视图制作的菜单栏。每个单元格包含一个图像(png格式)

我尝试在代码中设置色调,如下所示,但图标的色调没有改变。

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

    MenuCell *cell = [collectionView
                                 dequeueReusableCellWithReuseIdentifier:self.cell
                                 forIndexPath:indexPath];
    //cell.backgroundColor = [UIColor blueColor];

    cell.menuCellIcon.image = [UIImage
                               imageNamed:[self.menuCellImages objectAtIndex:indexPath.item] ];
    [cell.menuCellIcon.image
     imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

    cell.menuCellIcon.tintColor = [UIColor whiteColor];
...

【问题讨论】:

尝试将渲染模式更改为原始模式。 【参考方案1】:

这条线...[cell.menuCellIcon.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

返回使用渲染模式模板的新图像。您目前没有对这段代码的结果做任何事情。

你应该像这样修复你的代码...

cell.menuCellIcon.image = [[UIImage 
                           imageNamed:self.menuCellImages[indexPath.item]] 
                           imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

此外,使用新语法访问数组。 objectAtIndex 是一个非常古老的语法:)

【讨论】:

感谢您的帮助。请您回复有关访问数组的新语法的评论 @ios 新语法就像我的回答一样。 array[0] 例如。而不是[array objectAtIndex:0] :)【参考方案2】:

您不要使用从该行返回的UIImage

[cell.menuCellIcon.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

您应该使用以下语法:

cell.menuCellIcon.image = [UIImage
                          imageNamed: [self.menuCellImages objectAtIndex:indexPath.item]                             
                          imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]];

【讨论】:

【参考方案3】:

你需要这样写

UIImage *image = [UIImage imageNamed:[self.menuCellImages objectAtIndex:indexPath.item] ];
cell.menuCellIcon.image =   [image
     imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

cell.menuCellIcon.tintColor = [UIColor whiteColor];

【讨论】:

以上是关于图像的色调颜色不变的主要内容,如果未能解决你的问题,请参考以下文章

SVG颜色不变[重复]

使用 OpenCV(基于霍夫变换或其他特征)编写鲁棒的(颜色和大小不变)圆检测

UITabBar 色调颜色不适用于图像

色调颜色适用于本机颜色,但不适用于图案图像中的颜色

Swift:更改标签栏的图像色调颜色?

根据图像numpy数组中关于饱和度和值的色调值计算颜色可见性