8

簡単に言うと、Interface Builderには2つのビューがあり、1つはInterfaceBuilderのRGBスライダーを使用して99,99,99色に設定されています。

ここに画像の説明を入力してください

もう一方のビューは、特定の形状を実現するためにプログラムで色付けされています。私はそれを使用して記入します:

//Obviously, this is in drawRect.
[[UIColor leadColor] set];
CGContextEOFillPath(myContext);

//And this is a category on UIColor
+ (UIColor *)leadColor {
    return [UIColor colorWithWhite:99/255.0 alpha:1.0];
}

結果:

ここに画像の説明を入力してください

なぜこの違いが存在するのですか?


編集:(不要なdrawRectコードが削除されました)


EDIT2:

だから、ここで私は自分自身に嘘をついています..「InterfaceBuilderはRGB99,99,99を80,80,80として示しました。それは数を19だけオフセットするに違いありません。」>。>...Xcodeを使用している絶望的な男は、このようなクレイジーなものを考えています..結果:

完全!!

完全!!、しかしなぜ???? 別のXcodeバグ?私は先月それらの10のように見つけました...

4

2 に答える 2

22

私はついにこのアプリの微調整段階に到達し、この問題を解決する必要があったので、私は解決策を検索して簡単に見つけました:

Interface BuilderにRGB値を入力するにはどうすればよいですか?

図:

ここに画像の説明を入力してください

于 2012-07-15T15:50:06.240 に答える
1

colorWithWhiteグレースケール空間を使用し、グレースケール空間の 99 の色は RGB 空間の (99,99,99) の色にマッピングされません。

したがって、Interface Builder と同じ結果を得るには、RGB 空間を使用する必要があります。colorWithWhite への呼び出しを次のように置き換えます。

[UIColor colorWithRed:99/255.0 green:99/255.0 blue:99/255.0 alpha:1.0]
于 2012-05-28T08:54:42.800 に答える