ナビゲーションバーの色を変更しようとしています。次のrgbは濃い赤色用ですが、次のコードの後でナビゲーションバーが白に変わります。
navigationController.navigationBar.tintColor = [UIColor colorWithRed:117 green:4 blue:32 alpha:1];
これは、CGFloat
の値の範囲が0.0 to 1.0
からではなく0 to 255
であり、1.0
を超える値が1.0
として解釈されるためです。
ドキュメントは次のとおりです。 IColor
これを行うだけです:
navigationController.navigationBar.tintColor = [UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1];
各値を255に分割する必要があります。試してください。
[UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1]
WebまたはPhotoshopのようなものから来た場合、16進数の色を使用する方が簡単であることがわかりました。このマクロは次の目的で使用できます。
//RGB color macro
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
そして、次のように使用します。
self.navigationBar.tintColor = UIColorFromRGB(0xd8dadf);
ああ、これは面白い。本当の答えは、.tintColorがナビゲーションコントローラーのナビゲーションアイテムの色を設定することです([完了]ボタンなど)。