我有一个带有集合视图的菜单栏。每个单元格包含一个图像(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];
...
答案 0 :(得分:3)
这一行...... [cell.menuCellIcon.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
返回使用渲染模式模板的新图像。您目前没有对此代码的结果做任何事情。
你应该修改你的代码......
cell.menuCellIcon.image = [[UIImage
imageNamed:self.menuCellImages[indexPath.item]]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
此外,使用新语法访问数组。 objectAtIndex
是一种非常古老的语法:)
答案 1 :(得分:1)
你需要这样写
UIImage *image = [UIImage imageNamed:[self.menuCellImages objectAtIndex:indexPath.item] ];
cell.menuCellIcon.image = [image
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
cell.menuCellIcon.tintColor = [UIColor whiteColor];
答案 2 :(得分:1)
您不使用从此行返回的UIImage
:
[cell.menuCellIcon.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
您应该使用以下语法:
cell.menuCellIcon.image = [UIImage
imageNamed: [self.menuCellImages objectAtIndex:indexPath.item]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]];