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];
アニメーションは正しく実行されますが、画像は UIImageView の tintColor の代わりに元の色 (つまり、gfx 編集アプリケーションで使用される色) を使用します。
私は自分でアニメーションを実行しようとしています (画像をループし、UIImageView の画像プロパティを NSTimer 遅延で設定して、人間の目がそれをキャッチできるようにするなど)。
それを行う前に、UIImageView の tintColor プロパティが、私がしようとしていること、つまりアニメーションに使用することをサポートすることになっているかどうかを尋ねたいと思います。
ありがとう。