2010-11-24 14 views
25

में कनवर्ट करने के लिए कैसे मैं हेक्साडेसिमल से आरजीबी में रूपांतरण करना चाहता हूं, लेकिन # एफएफएफएफएफएफ जैसे स्ट्रिंग के साथ हेक्साडेसिमल सौदा करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?हेक्साडेसिमल को आरजीबी

+4

जो भाषा? – st0le

+0

क्या आप भाषा निर्दिष्ट कर सकते हैं? –

+0

मुझे खेद है, मैंने इसे संपादित किया है .. यह उद्देश्य सी –

उत्तर

81

मैंने अभी आपके लिए अपनी यूआईसीओलर श्रेणी का विस्तार किया है।
तरह UIColor *green = [UIColor colorWithHexString:@"#00FF00"];

// 
// UIColor_Categories.h 
// 
// Created by Matthias Bauch on 24.11.10. 
// Copyright 2010 Matthias Bauch. All rights reserved. 
// 

#import <Foundation/Foundation.h> 


@interface UIColor(MBCategory) 

+ (UIColor *)colorWithHex:(UInt32)col; 
+ (UIColor *)colorWithHexString:(NSString *)str; 

@end 

// 
// UIColor_Categories.m 
// 
// Created by Matthias Bauch on 24.11.10. 
// Copyright 2010 Matthias Bauch. All rights reserved. 
// 

#import "UIColor_Categories.h" 

@implementation UIColor(MBCategory) 

// takes @"#123456" 
+ (UIColor *)colorWithHexString:(NSString *)str { 
    const char *cStr = [str cStringUsingEncoding:NSASCIIStringEncoding]; 
    long x = strtol(cStr+1, NULL, 16); 
    return [UIColor colorWithHex:x]; 
} 

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

@end 
+0

का उपयोग करें मुझे पता है कि यह पुराना है लेकिन मुझे विश्वास है कि आपको #import करना है वास्तविक रूप से UIColor (MBCategory) करने में सक्षम हो अन्यथा आपको एक त्रुटि मिलती है जो @interface UIColor को खोजने में असमर्थ है। यह लिखा गया था क्योंकि यह एक अद्यतन हो सकता है, लेकिन यह आयात के बिना काम नहीं करता है। – Popeye

+0

इसे एक्सकोड द्वारा बनाए गए मानक आईओएस प्रोजेक्ट में काम करना चाहिए। संपूर्ण UIKit प्रीकंपील्ड हेडर (ProjectName-Prefix.pch) में आयात किया जाता है। –

24
//In your header file 

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 

//usage 
UIColor *color = UIColorFromRGB(0x000000) 
//you can also use it inline 
[text.textField setTextColor:UIColorFromRGB(0xcccccc)]; 
+2

मुझे लगता है कि यह कुछ अच्छा है :) –

3

इसका इस्तेमाल यह आपको मदद मिल सकती है है

UIColor *organizationColor = [self colorWithHexString:@"#ababab" alpha:1]; 


- (UIColor *)colorWithHexString:(NSString *)str_HEX alpha:(CGFloat)alpha_range{ 
    int red = 0; 
    int green = 0; 
    int blue = 0; 
    sscanf([str_HEX UTF8String], "#%02X%02X%02X", &red, &green, &blue); 
    return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha_range]; 
} 
संबंधित मुद्दे