图像的色调颜色不变
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];
【讨论】:
以上是关于图像的色调颜色不变的主要内容,如果未能解决你的问题,请参考以下文章