[UIColor colorWithRed: green: blue: alpha:] का उपयोग करना UITableView सेपरेटर कलर के साथ काम नहीं करता है?


86

मैं एक गहरे भूरे रंग के सेपरेटर रंग को कॉन्फ़िगर करने की कोशिश कर रहा हूं। निम्नलिखित कुछ क्यों नहीं करता है?

self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];

बिना किसी सेपरेटर के एक तालिका देता है।

जैसे ही मैं [UIColor blackColor] का उपयोग करता हूं, तब मुझे सेपरेटर ठीक मिलते हैं। क्या बात है?

जवाबों:


211

आपको विभाजित करने की आवश्यकता है 255.0

क्योंकि मैं शायद ही कभी 1.0 और 0.0 के बीच के मूल्यों का उपयोग करता हूं, मैंने एक बहुत ही सरल यूआईसीकलर श्रेणी बनाई है जो गन्दा दिखने वाला विभाजन अपने आप करता है: ( http://github.com/Jon889/JPGeneral से )

//.h file
@interface UIColor (JPExtras)
+ (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha;
@end

//.m file
@implementation UIColor (JPExtras)
+ (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha {
    return [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:alpha];
}
@end

तो आप बस कर सकते हैं (यदि आप मेरे द्वारा ऊपर दी गई श्रेणी को आयात करते हैं):

[UIColor colorWithR:127 G:127: B:127 A:1];

5
उद्योग में 0-1 मानक का मान है? आप किसी भी फोटो संपादन एप्लिकेशन को खोल सकते हैं और रंग बीनने वाला आपको 0-255 से एक मूल्य देता है, भले ही मैं इस बात से उत्सुक हूं कि वे आपको अतिरिक्त काम करने के लिए विभाजित क्यों करेंगे?
मफिन मैन

1
@ निक - यह एक अच्छा सवाल है। मुझे संदेह है कि यह UIColor'गहरे रंग' (यानी 24 बिट से अधिक गहराई वाले रंग, या अल्फा के साथ 32) का समर्थन करने की आवश्यकता है। बेशक, यह अभी भी तथ्य को एक अंतर्निहित सुविधा विधि (हेक्स समर्थन के साथ) में नहीं बदलता है, स्पष्ट रूप से कई डेवलपर्स के लिए काफी सहायक होगा!
20

भी, हेक्स मूल्यों के लिए एक ही काम करता है। कभी-कभी हम रंगों को हेक्स के रूप में प्राप्त करते हैं, ताकि हम उन्हें हाथ से गणना न कर सकें: उदाहरण के लिए # C94557 के लिए यह होगा: [UIColor colorWithRed: (CGFloat) 0xC9 / 0xFF हरा: (CGFloat) 0x45 / 0xFF नीला: (CGFloat) 0x57 / 0xFF अल्फा: 1.0];
यादगार

UIColor में दो नए तरीके हैं जो पूर्णांक मानों को 0 से 255 तक स्वीकार करते हैं। नीचे मेरा उत्तर देखें।
ब्लिप

59

क्योंकि आपकी UIColor विधि को 0-1 से फ़्लोट की आवश्यकता है, न कि 0-255 की। आपको अपने सभी RGB मान 255.0 से विभाजित करने की आवश्यकता है, इस प्रकार है:

self.tableView.seperatorColor = [UIColor colorWithRed:127.0f/255.0f green:127.0f/255.0f blue:127.0f/255.0f alpha:1.0f];

3

आपको अपने मूल्यों को 255 से विभाजित करना होगा, क्योंकि सीमा 0-1 है। इसके बजाय 127/255 = 0.49 एफ लें और टाइप करें। यह वहाँ है, यह सिर्फ सफेद है :)

संपादित करें: टिप्पणियों के कारण, मैंने कुछ कोड जोड़ा कि मैं इसे कैसे हल करूं:

-(float)getRGBValue:(int) rgbValue{  
    return rgbValue/255.0;
]

1

दो नए तरीके हैं UIColorजो पूर्णांक मानों को 0 से 255 तक स्वीकार करते हैं:

UIColor(red: Int, green: Int, blue: Int)

तथा

UIColor(alpha: Float, red: Int, green: Int, blue: Int)

यह प्रलेखन में नहीं है, लेकिन मैंने इसका उपयोग किया है और यह एक आकर्षण की तरह काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.