2016-06-11 14 views
0

Ich möchte drei verschiedene Farben zum Pickeransichthintergrund eins für die Hintergrundeinzelteile eins für das Einzelteil einstellen, das im Pflücker (vorgewähltes Einzelteil) ist. Wie würde ich tun Das.Wie man verschiedene Farben mit HEX-Werten im Picker-Hintergrund einstellt

Ich habe Hex-Wert einer Farbe (# 01445), also muss ich es für Picker Hintergrund setzen. Wie setze ich diese Hex-Werte? Und auch ich muss diese Farbe (# 014455) Wert auf das ausgewählte Element in der Auswahl festlegen.

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]; 

dies ist die Funktion i für die Verwendung von ihren Farben im Hintergrund

-(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]; 
    } 

Antwort

0

Ich denke, erstellt haben, dass Sie eine Kategorie von UIColor mit fromHex Methode brauchen, und das ist, was ich mit Ihnen teilen möchte

dies ist die .h

#import <UIKit/UIKit.h> 

@interface UIColor (Hex) 

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

@end 

th ist die .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 

und dann brauchen Sie nur diese UIColor + Hex.h importieren und Ihren Code mit dieser Methode

wie diese

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]; 

ich das Sie hoffen, ändern hilft

+0

eigentlich habe ich bereits funktion erstellt, um die hexenfarbe zu setzen bitte sehen sie den aktualisierten code aber jetzt mein problem ist ich wollte die hintergrundfarbe für die reihe, die wir aus picker wählen. – vicky

+0

ok, aber meine Antwort war vor 16 Stunden;), müssen Sie jetzt ändern, um Ihre Zelle backgound Farbe zu ändern? –

+0

kannst du mir bitte sagen wie würde ich das tun @Reinier Melian – vicky