16進数のカラーコードをもとにUIColorを作成する
背景
カラーコードは大体16進数表記なのでiOSのUIcolorを作る際に16進数表記のカラーコードを10進数に変換してUIColorを作成したかったので調べた。
やり方
下記メソッドをUIColorのカテゴリに追加した。
+ (UIColor *)colorWithHexString:(NSString *)hex { //先頭に#がついていた場合は#を削除 if ([hex hasPrefix:@"#"]) { hex = [hex substringFromIndex:1]; } unsigned int rgb[3]; for (int i = 0; i < 3; i++) { NSString *component = [hex substringWithRange:NSMakeRange(i * 2, 2)]; NSScanner *scanner = [NSScanner scannerWithString:component]; [scanner scanHexInt:&rgb[i]]; } return [self colorWithRed:rgb[0]/255.0 green:rgb[1]/255.0 blue:rgb[2]/255.0 alpha:1.0f]; }
これで16進数のカラーコードに対応したUIColorを取得することができる。