tintColor 是一个救生员,它将应用程序主题化提升到一个全新的(简单)水平。
//the life saving bit is the new UIImageRenderingModeAlwaysTemplate mode of UIImage
UIImage *templateImage = [[UIImage imageNamed:@"myTemplateImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
imageView.image = templateImage;
//set the desired tintColor
imageView.tintColor = color;
上面的代码将根据 UIImageview 的色调“绘制”图像的不透明部分,这太酷了。像这样简单的东西不需要核心图形。
我面临的问题是动画。
继续上面的代码:
//The array with the names of the images we want to animate
NSArray *imageNames = @[@"1",@"2"@"3"@"4"@"5"];
//The array with the actual images
NSMutableArray *images = [NSMutableArray new];
for (int i = 0; i < imageNames.count; i++)
{
[images addObject:[[UIImage imageNamed:[imageNames objectAtIndex:i]] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]];
}
//We set the animation images of the UIImageView to the images in the array
imageView.animationImages = images;
//and start animating the animation
[imageView startAnimating];
动画正确执行,但图像使用其原始颜色(即 gfx 编辑应用程序中使用的颜色)而不是 UIImageView 的 tintColor。
我将尝试自己执行动画(通过做一些有点过头的事情,比如遍历图像并使用 NSTimer 延迟设置 UIImageView 的图像属性,以便人眼可以捕捉到它)。
在此之前,我想问一下 UIImageView 的 tintColor 属性是否应该支持我试图用它做的事情,即将它用于动画。
谢谢。