0

次のコードがあります。

//Create a view to place repeated arrow in.
UIView *rootView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 60)];

//Add Repeated Arrows to the top of the view using a color pattern.
UIImage *arrowImage = [UIImage imageNamed:@"arrow-down"];
UIColor *repeatedArrowColor = [UIColor colorWithPatternImage:arrowImage];
CGRect repeatedArrowFrame = CGRectMake(0, 0, 320.0, [arrowImage size].height);
UIView *repeatedArrowView = [[UIView alloc] initWithFrame:repeatedArrowFrame];
[repeatedArrowView setBackgroundColor:repeatedArrowColor];

[rootView addSubview:repeatedArrowView];

使用されている画像は、#323232 の色の矢印が付いた png です。これを確認するには、.app ファイルを右クリックして [パッケージの内容を表示] を選択しました。

パターンの生成に使用される画像。

ただし、パターンが iOS シミュレータ画面に表示されると、矢印の色は #262626 または #252525 になります。

iOS シミュレーターの間違った色の矢印

誰かがこの問題に遭遇しましたか? もしそうなら、どのように修正しましたか、または回避しましたか?

4

1 に答える 1

0

要するに、誰もがこれらの問題を抱えています。その画像をプレビューで開き、pixie (開発ツール) を使用すると、ファイル内とは異なるピクセルの値が表示されます。その値は、シミュレーターで表示される値とは異なりますか?

あなたのpngにはカラープロファイルが埋め込まれていますか? 削除すると役立つ場合があります(pngcrushはオプションとしてこれを行います)。何もない場合、または修正されない場合は、最初に次を使用して CGImageRef としてイメージをロードする必要がある場合があります。

CGImageRef CGImageCreateWithPNGDataProvider (
   CGDataProviderRef source,
   const CGFloat decode[],
   bool shouldInterpolate,
   CGColorRenderingIntent intent
);

色の意図(最初)と最後のオプションとしてデコード配列をいじります。

于 2012-09-12T22:52:17.537 に答える