2012-02-18 14 views
6

इंटरफ़ेस बिल्डर में से अलग रंग का उत्पादन स्लाइडर मैं इस स्क्रीनशॉट के लिए एक UILabel का रंग बदल गया है, 100% पर लाल 255, ग्रीन 159, ब्लू 0 और अस्पष्टता है। जो एक नारंगी रंग देता है।iOS SDK का इंटरफ़ेस बिल्डर के आरजीबी UIColor withRGB

IB RGB Sliders Color Produced in Center

मैं प्रोग्राम के रूप में UILabel रंग की तुलना में यह वापस इस का उपयोग करते हुए मूल रंग में परिवर्तित ...

timeLabel.textColor = [UIColor colorWithRed:255.0 green:159.0 blue:0.0 alpha:1.0]; 

और यह इस रंग देता बदल .... UIColor color

मैंने सोचा कि यह एक ही होना चाहिए, किसी को पता है मैं गलत क्या कर रहा हूँ? कृपया मदद करें, धन्यवाद।

उत्तर

2
timeLabel.textColor = [UIColor colorWithRed:255/255.0f green:159.0/255.0f blue:0.0/255.0f alpha:1.0]; 
+0

धन्यवाद बहुत काम किया। जब मैं सक्षम हूं मैं इस जवाब को स्वीकार करूंगा। – OscarTheGrouch

+1

आप शायद, स्पष्टीकरण का एक सा जोड़ सकता है बल्कि सिर्फ एक अस्वरूपित कोड नमूने से – jrturton

+0

UIColor केवल 0 से 1 तक – OscarTheGrouch

7

संपादित करें: दो साल बाद, इस पोस्ट को अभी भी कुछ कर्म और टिप्पणियां मिलती हैं। एक बेहतर एक के लिए मेरा पुराना जवाब तय किया।

एक समारोह जो UIColor के लिए 0 और 255 के बीच इनपुट ले जा सकते हैं जोड़ने के लिए सबसे समझदार, और पुन: प्रयोज्य तरह से, एक कस्टम श्रेणी तैयार करना है। पढ़ने के लिए आसान, डीबग करना आसान है, अन्य लोगों के लिए योगदान देना आसान है, और परियोजना को साफ और संरचित रखता है क्योंकि यह केवल एक दृश्य व्यू कंट्रोलर से परे बढ़ता है। तो, निम्न फ़ाइलें जोड़ने के लिए, और उन्हें अपने एम-फाइलों में आयात जहाँ आप उन्हें जरूरत

UIColor + Extra.h

@interface UIColor (Extra) 
+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha 
+ (UIColor *) randomColor; 
+ (UIColor *) colorWithHex:(uint) hex; 
@end 

UIColor + Extra.m

#import "UIColor+Extra.h" 

@implementation UIColor (Extra) 

+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha 
{ 
    return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/100.f]; 
} 

+ (UIColor *) randomColor 
{ 
    CGFloat red = (CGFloat)random()/(CGFloat)RAND_MAX; 
    CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX; 
    CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX; 
    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0]; 
} 
+ (UIColor *) colorWithHex:(uint) hex 
{ 
    int red, green, blue, alpha; 

    blue = hex & 0x000000FF; 
    green = ((hex & 0x0000FF00) >> 8); 
    red = ((hex & 0x00FF0000) >> 16); 
    alpha = ((hex & 0xFF000000) >> 24); 

    return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.f]; 
} 
@end 
+0

मैक्रोज़ के लिए धन्यवाद और सलाह देना कि उन्हें कहां रखा जाए :)। ये मैक्रोज़ कोड को पढ़ने के लिए बहुत आसान बना देंगे, और अन्य प्रोग्रामों में बनाए गए आरजीबी रंग लेंगे। –

+0

मैं सामान्य रूप से मैक्रोज़ का सावधानी बरतता हूं, क्योंकि कक्षा विस्तार या स्थानीय विधि अधिक सुरक्षित है। इसके लिए .pch का उपयोग करना भयानक है और मैं इसके लिए आपको -1 प्रदान करने जा रहा हूं। .pch संकलक को गति देने के लिए एक उपकरण है जो संकलक को सामान्य शीर्षकों के पार्सिंग को अनुकूलित करने की अनुमति देता है। एक तरह से मैक्रोज़ या जरूरत नहीं किया जा सकता प्रचार करने के लिए के रूप में इसका इस्तेमाल करते हुए छोटी परियोजनाओं में अनावश्यक और कुछ में एक abomination है।(रेंट ओवर) –

+0

मान्य टिप्पणी, @ गॉर्डनडोव, और इसे बिल्कुल एक रान के रूप में नहीं देखा गया था। फरवरी 12 में, मैं शायद इस जवाब को पीएच-फाइल में मैक्रो के रूप में जोड़ूंगा, लेकिन आज, मैं निश्चित रूप से बेहतर जानता हूं, एसओ में कुछ अंतर्दृष्टिपूर्ण टिप्पणियों और उत्तरों के लिए बहुत धन्यवाद। चूंकि यह उत्तर अभी भी मुझे एसओ-कर्म दे रहा है, मुझे शायद एक बेहतर और अधिक परिष्कृत एक जोड़ना चाहिए ... –

0

एक बहुत ही आसान Xcode के चित्रांकनी पैलेट में रंग पुन: पेश करने के लिए रास्ता इस लिंक का उपयोग करने के लिए है https://github.com/rob-brown/RBCategories/blob/master/UIColor+RBExtras.m

इसे इस तरह क्रेयॉन रंगों के लिए अनुमति देता है .... UIColor *ThisColor = [UIColor blueberryCrayonColor];

0

कोशिश सेटिंग "उपकरण आरजीबी" - यह मेरे लिए

enter image description here

संबंधित मुद्दे