Цвет может задаваться через шестнадцатиричную запись или через RGB. Для того, чтобы создать нужный нам цвет, зная только его шестнадцатиричное значение, необходимо создать так называемую категорию. Категория позволяет добавить к существующим классам новые методы. То есть мы добавим к классу UIColor методы которые позволят создавать цвет, используя шестнадцатиричную запись или RGB значение цвета.
UIColor+Hex.h
#import <UIKit/UIKit.h> @interface UIColor (Hex) + (UIColor *) colorWithHexString:(NSString *)aHexString; + (UIColor *) colorWithRGBHex:(UInt32)aHex; @end
UIColor+Hex.m
#import "UIColor+Hex.h" @implementation UIColor (Hex) + (UIColor *) colorWithHexString:(NSString *)aHexString { NSScanner *scanner = [NSScanner scannerWithString:aHexString]; unsigned hexNum; if (![scanner scanHexInt:&hexNum]) { return nil; } return [UIColor colorWithRGBHex:hexNum]; } + (UIColor *) colorWithRGBHex:(UInt32)aHex { int r = (aHex >> 16) & 0xFF; int g = (aHex >> 8) & 0xFF; int b = (aHex) & 0xFF; return [UIColor colorWithRed:r / 255.0f green:g / 255.0f blue:b / 255.0f alpha:1.0f]; } @end
Использование метода категории UIColor+Hex
UIColor *color = [UIColor colorWithHexString:@"c90606"];
Комментариев нет:
Отправить комментарий