2016-06-11 2 views
0

Я хочу установить три разных цвета на фон с рисунком один для фона, один для элемента, который в данный момент находится в подборщике (выбранный элемент). Как бы я сделал что.Как установить разные цвета с значениями HEX в фокусе Picker

У меня есть значение шестнадцатеричного цвета (# 01445), поэтому я должен установить его для фона сборщика. Как установить эти шестнадцатеричные значения. А также я должен установить значение этого цвета (# 014455) для выбранного элемента в подборщике.

myPickerView = [[UIPickerView alloc]init]; 
myPickerView.dataSource = self; 
myPickerView.delegate = self; 
myPickerView.showsSelectionIndicator = YES; 
myPickerView.tag=1; 
[myPickerView setBackgroundColor:[self colorFromHexString:@"#014455"]]; //set different color here with hex value 

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
           initWithTitle:@"Done" style:UIBarButtonItemStyleDone 
           target:self action:@selector(done:)]; 


UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame: 
         CGRectMake(0, self.view.frame.size.height- 
           myPickerView.frame.size.height-(self.view.frame.size.width/6.4),self.view.frame.size.width,50)]; 
[toolBar setBarStyle:UIBarStyleBlackOpaque]; 

[toolBar setBackgroundColor:[self colorFromHexString:@"#ff7a03"]]; // i have hex value #ff7a03 so i have to set here 

NSArray *toolbarItems = [NSArray arrayWithObjects: 
         doneButton, nil]; 
[toolBar setItems:toolbarItems]; 

это функция я создал для использования ее цвета в фоновом режиме

-(UIColor *)colorFromHexString:(NSString *)hexString { 
unsigned rgbValue = 0; 
NSScanner *scanner = [NSScanner scannerWithString:hexString]; 
[scanner setScanLocation:1]; // bypass '#' character 
[scanner scanHexInt:&rgbValue]; 
return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)/255.0 green:((rgbValue & 0xFF00) >> 8)/255.0 blue:(rgbValue & 0xFF)/255.0 alpha:1.0]; 
    } 

ответ

0

Я думаю, что вам нужна категория UIColor с fromHex методом, и это то, что я хочу поделиться с вами

это заголовочный

#import <UIKit/UIKit.h> 

@interface UIColor (Hex) 

+(UIColor*)colorFromHex:(NSString*)hex; 

@end 

тыс это является .m

#import "UIColor+Hex.h" 

@implementation UIColor (Hex) 

+(UIColor*)colorFromHex:(NSString*)hex 
{ 
    NSString * cString = [hex stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].uppercaseString; 

    if([cString hasPrefix:@"#"]) 
    { 
     cString = [cString substringFromIndex:1]; 
    } 

    if([cString length] != 6) 
    { 
     return [UIColor grayColor]; 
    } 

    NSString * rString = [cString substringToIndex:2]; 
    NSString * gString = [cString substringWithRange:NSMakeRange(2, 2)]; 
    NSString * bString = [cString substringWithRange:NSMakeRange(4, 2)]; 

    unsigned int r,g,b = 0; 

    [[[NSScanner alloc]initWithString:rString] scanHexInt:&r]; 
    [[[NSScanner alloc]initWithString:gString] scanHexInt:&g]; 
    [[[NSScanner alloc]initWithString:bString] scanHexInt:&b]; 

    return [UIColor colorWithRed:(CGFloat)r/255.0 green:(CGFloat)g/255.0 blue:(CGFloat)b/255.0 alpha:1]; 
} 


@end 

и тогда только нужно импортировать UIColor + Hex.h и изменить свой код, используя этот метод

как этот

myPickerView = [[UIPickerView alloc]init]; 
myPickerView.dataSource = self; 
myPickerView.delegate = self; 
myPickerView.showsSelectionIndicator = YES; 
myPickerView.tag=1; 
myPickerView.backgroundColor =[UIColor colorFromHex:@"#014455"]; //set different color here with hex value 

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
           initWithTitle:@"Done" style:UIBarButtonItemStyleDone 
           target:self action:@selector(done:)]; 


UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame: 
         CGRectMake(0, self.view.frame.size.height- 
           myPickerView.frame.size.height-(self.view.frame.size.width/6.4),self.view.frame.size.width,50)]; 
[toolBar setBarStyle:UIBarStyleBlackOpaque]; 

[toolBar setBackgroundColor:[UIColor colorFromHex:@"#ff7a03"]]; // i have hex value #ff7a03 so i have to set here 

NSArray *toolbarItems = [NSArray arrayWithObjects: 
         doneButton, nil]; 
[toolBar setItems:toolbarItems]; 

Я надеюсь, что это поможет вам

+0

Фактически, я уже создал функцию для установки гексагонального цвета, пожалуйста, просмотрите обновленный код, но теперь моя проблема в том, что я хотел реализовать цвет фона для строки, которую мы выбираем из подборщика. – vicky

+0

ОК, но мой ответ был 16 часов назад;), вам нужно изменить, чтобы изменить цвет задней части ячейки? –

+0

не могли бы вы рассказать мне, как я могу это сделать @Reinier Melian – vicky

Смежные вопросы