画像にカラーリファレンスを適用します。結果は、Photoshopの乗算ブレンドモードのようになります。このモードでは、白が色合いに置き換えられます。
カラー値を継続的に変更します。
フォローアップ:これを行うためのコードをImageViewのdrawRect:メソッドに挿入しますよね?
いつものように、リンクとは対照的に、コードスニペットは私の理解に大きく役立ちます。
更新:Raminが提案したコードでUIImageViewをサブクラス化。
私はこれを私のビューコントローラのviewDidLoad:に入れました:
[self.lena setImage:[UIImage imageNamed:kImageName]];
[self.lena setOverlayColor:[UIColor blueColor]];
[super viewDidLoad];
画像は見えますが、色合いは出ていません。他の画像の読み込み、IBでの画像の設定、ビューコントローラーでのsetNeedsDisplay:の呼び出しも試みました。
更新:drawRect:が呼び出されていません。
最終更新: imageViewが適切に設定された古いプロジェクトを見つけたので、Raminのコードをテストでき、魅力的に動作します!
最終、最終更新:
Core Graphicsについて学習しているだけの人のために、おそらく機能する可能性のある最も単純なものを示します。
サブクラス化されたUIViewで:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColor(context, CGColorGetComponents([UIColor colorWithRed:0.5 green:0.5 blue:0 alpha:1].CGColor)); // don't make color too saturated
CGContextFillRect(context, rect); // draw base
[[UIImage imageNamed:@"someImage.png"] drawInRect: rect blendMode:kCGBlendModeOverlay alpha:1.0]; // draw image
}