0

CGContextSetFillColorWithColorParse データベースから取得している色変数を使用して画像に色を付けようとしています。

この方法で画像の色を変更するとうまくいきます。

[...]
UIImage *image = [UIImage imageNamed:@"menuButton.png"];
CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToMask(context, rect, image.CGImage);
CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]);
[...]

これにより、menuButton.png が問題なく白に変更されます。

しかし、それを 16 進数の色に変更しようとすると、次のように (16 進数の色のユーティリティを使用して) Parse から取得します。

self.bgColor = [post objectForKey:@"bgColor"]; //bgColor = "#ffffff"
[...]
CGContextSetFillColorWithColor(context,
   [[UIColor colorWithHexString:self.bgColor] CGColor]);

画像が表示されなくなりました。これはポインタの問題ですか?ご協力いただきありがとうございます。

4

1 に答える 1

1

同様の問題があり、直接的な解決策が見つかりませんでした。私にとっての解決策は、中間オブジェクトを使用するのではなく-setFill、オブジェクトでメソッドを使用することでした:UIColorCGColor

[[UIColor colorWithHexString:self.bgColor] setFill];
于 2013-03-06T15:46:08.787 に答える