Feroz
Feroz

Reputation: 699

How to set RGB color value for Section header - IOS

I have tried with following code for my header view. Its not worked. How to set color other than default color values.

[header_view setBackgroundColor:[UIColor colorWithRed:10. green:0 blue:0 alpha:0]];

Upvotes: 4

Views: 26029

Answers (4)

Popeye
Popeye

Reputation: 12093

For anyone wanting use something simpler to my code below I have recently write a new category for UIColor which can be found here all you need to do is take the files called UIColor+extensions.h and UIColor+extensions.m and add them to your own project. This new category doesn't match the code below exactly as it has some other methods in it and I found a more efficient way of doing the colorWithHex: method.


Original answer

You could also make your own Hexadecimal color converter by extending the UIColor methods like so.

UIColor_hex.h

#import <UIKit/UIColor.h>
@interface UIColor(MBCategory)
+ (UIColor *)colorWithHexString:(NSString *)hexStr;
@end

UIColor_hex.m

#import "UIColor_Hex.h"
@interface UIColor(HexConverterCategory)

// Takes 0x123456
+ (UIColor *)colorWithHex:(UInt32)color andAlpha:(float)alpha;

@end

@implementation UIColor(HexConverterCategory)

+ (UIColor *)colorWithHex:(UInt32)color andAlpha:(float)alpha
{
    unsigned char r, g, b;
    b = color & 0xFF;
    g = (color >> 8) & 0xFF;
    r = (color >> 16) & 0xFF;
    return [UIColor colorWithRed:(float)r/255.0f green:(float)g/255.0f blue:(float)b/255.0f alpha:alpha];
 }

@end

@implementation UIColor(MBCategory)

 + (UIColor *)colorWithHexString:(NSString *)hexStr 
 {
    float alpha;
    NSString *newHexStr;
    NSCharacterSet *cSet = [NSCharacterSet characterSetWithCharactersInString:@"/-_,~^*&\\ "];
    if(![hexStr hasPrefix:@"#"]) hexStr = [NSString stringWithFormat:@"#%@", hexStr];
    if([hexStr rangeOfCharacterFromSet:cSet].location != NSNotFound) {

       NSScanner *scn = [NSScanner scannerWithString:hexStr];
      [scn scanUpToCharactersFromSet:cSet intoString:&newHexStr];
      alpha = [[[hexStr componentsSeparatedByCharactersInSet:cSet] lastObject] floatValue];

   } else {

      newHexStr = hexStr;
      alpha = 1.0f;

   }

   const char *cStr = [newHexStr cStringUsingEncoding:NSASCIIStringEncoding];
   long x = strtol(cStr+1, NULL, 16);
   return [UIColor colorWithHex:x andAlpha:alpha];
   }
@end

Then all you would need to do to is

UIColor *myHexColor = [UIColor colorWithHexString:@"#FFFFFF"];

*EDIT* You can also miss out the '#' if you want and the colorWithHexString will add it, you can also add the alpha on the end by by seperating it with one of these characters that has been set in cSet. So you could do

UIColor *myHexColorWithAlpha = [UIColor colorWithHexString:@"#FFFFFF 0.4"];
UIColor *myHexColorWithAlpha = [UIColor colorWithHexString:@"#FFFFFF/0.4"];
UIColor *myHexColorWithAlpha = [UIColor colorWithHexString:@"#FFFFFF*0.4"];

etc

Then to set the header you could do

[header_view setBackgroundColor:[UIColor colorWithHexString:@"#FFFFFF"]];

Upvotes: 4

AJS
AJS

Reputation: 1403

[header_view setBackgroundColor:[UIColor colorWithRed:10/255.0 green:0/255.0 blue:0/255.0 alpha:1]];

Upvotes: 11

bitmapdata.com
bitmapdata.com

Reputation: 9600

see the UIColor.h header. will be shown below.

+ (UIColor *)blackColor;      // 0.0 white 
+ (UIColor *)darkGrayColor;   // 0.333 white 
+ (UIColor *)lightGrayColor;  // 0.667 white 
+ (UIColor *)whiteColor;      // 1.0 white 
+ (UIColor *)grayColor;       // 0.5 white 
+ (UIColor *)redColor;        // 1.0, 0.0, 0.0 RGB 
+ (UIColor *)greenColor;      // 0.0, 1.0, 0.0 RGB 
+ (UIColor *)blueColor;       // 0.0, 0.0, 1.0 RGB 
+ (UIColor *)cyanColor;       // 0.0, 1.0, 1.0 RGB 
+ (UIColor *)yellowColor;     // 1.0, 1.0, 0.0 RGB 
+ (UIColor *)magentaColor;    // 1.0, 0.0, 1.0 RGB 
+ (UIColor *)orangeColor;     // 1.0, 0.5, 0.0 RGB 
+ (UIColor *)purpleColor;     // 0.5, 0.0, 0.5 RGB 
+ (UIColor *)brownColor;      // 0.6, 0.4, 0.2 RGB 
+ (UIColor *)clearColor;      // 0.0 white, 0.0 alpha 

as the above color is same following code.

black:       [UIColor colorWithWhite:0.0f alpha:1.0f];
darkGray:    [UIColor colorWithWhite:0.333f alpha:1.0f];
lightGray:   [UIColor colorWithWhite:0.667f alpha:1.0f];
white:       [UIColor colorWithWhite:1.0f alpha:1.0f];
gray:        [UIColor colorWithWhite:0.5f alpha:1.0f];
red:         [UIColor colorWithRed:255/255.0f green:0/255.0f blue:0/255.0f alpha:1.0f];
green:       [UIColor colorWithRed:0/255.0f green:255/255.0f blue:0/255.0f alpha:1.0f];
blue:        [UIColor colorWithRed:0/255.0f green:0/255.0f blue:255/255.0f alpha:1.0f];
.
.
.

if you want how to color rgb value apply to UIColor. see the below post

you want color found wikipedia or else site.

enter image description here

r, g, b values ​​are apply as follows.

[UIColor colorWithRed:158/255.0f green:253/255.0f blue:56/255.0f alpha:1.0f];

enter image description here

Upvotes: 8

Hemant Dixit
Hemant Dixit

Reputation: 1145

try this code:

[header_view setBackgroundColor:[UIColor colorWithRed:149.0/255.0f green:149.0/255.0f 
 blue:149.0/255.0f alpha:1.0]];

Upvotes: 1

Related Questions