選択された UIColor (ユーザーが選択) が暗いか明るいかを判断して、その色の上にあるテキスト行の色を変更し、読みやすさを向上させる必要があります。
以下は Flash/Actionscript の例です (デモ付き)。http://web.archive.org/web/20100102024448/http://theflashblog.com/?p=173
何かご意見は?
乾杯、アンドレ
アップデート
皆様のご提案のおかげで、動作するコードができました:
- (void) updateColor:(UIColor *) newColor
{
const CGFloat *componentColors = CGColorGetComponents(newColor.CGColor);
CGFloat colorBrightness = ((componentColors[0] * 299) + (componentColors[1] * 587) + (componentColors[2] * 114)) / 1000;
if (colorBrightness < 0.5)
{
NSLog(@"my color is dark");
}
else
{
NSLog(@"my color is light");
}
}
もう一度ありがとう :)
ベストアンサー1
W3C には次のものがあります:http://www.w3.org/WAI/ER/WD-AERT/#カラーコントラスト
黒または白のテキストのみを使用する場合は、上記の色の明るさの計算を使用します。125 未満の場合は、白いテキストを使用します。125 以上の場合は、黒のテキストを使用します。
編集 1: 黒いテキストに偏りがあります。:)
編集 2: 使用する数式は ((赤の値 * 299) + (緑の値 * 587) + (青の値 * 114)) / 1000 です。