2009-12-24 16 views

उत्तर

56

आप UIColor वर्ग श्रेणियों का उपयोग कर के लिए अपनी खुद की विधि लिख सकते हैं।

#import <UIKit/UIKit.h> 
@interface UIColor(NewColor) 
+(UIColor *)MyColor; 
@end 

#import "UIColor-NewColor.h" 
@implementation UIColor(NewColor) 
+(UIColor *)MyColor { 
    return [UIColor colorWithRed:0.0-1.0 green:0.0-1.0 blue:0.0-1.0 alpha:1.0f]; 
} 

इस तरह से, आप एक नया रंग बना सकते हैं और अब आप इसे की तरह

[UIColor MyColor]; 

कॉल कर सकते हैं तुम भी यादृच्छिक रंग प्राप्त करने के लिए इस विधि को लागू कर सकते हैं। उम्मीद है कि यह मदद करता है।

+0

मैं एक समान समाधान का उपयोग कर रहा हूं लेकिन मुझे इसे काम करने के लिए कुछ कहा जाता है: [[यूआईसीओलर एलोक] माईकोलर]। क्या इसे आवंटित करने का कोई तरीका नहीं है? – adjwilli

+1

@adjwilli सुनिश्चित करें कि आप विधि घोषणा के सामने '+ 'का उपयोग कर रहे हैं, न कि' -'। यह इसे एक क्लास विधि बनाम एक उदाहरण विधि बना देगा। –

2

initWithRed:green:blue:alpha: या colorWithRed:green:blue:alpha: का उपयोग करें।

उदाहरण के लिए:

// create new autoreleased UIColor object named "myColor" 
UIColor *myColor = [UIColor colorWithRed:0.5f green:0.5f blue:0.5f alpha:1.0f]; 

// create new retained UIColor object named "myColor2" 
UIColor *myColor2 = [[UIColor alloc] initWithRed:0.5f green:0.5f blue:0.5f alpha:1.0f]; 
+0

लेकिन वह मेरे जैसे कुछ कहने के लिए अनुमति होगी: UIColor * orangeColor = [UIColor alloc] initWithRed: greenLblue: अल्फा:] ; और फिर बाद में इसका उपयोग करें? – Jaba

+0

हां, सही वाक्यविन्यास के साथ। मैंने कोड उदाहरण जोड़े। मेमोरी को सही तरीके से प्रबंधित करना सुनिश्चित करें: यदि आप कक्षा सुविधा कन्स्ट्रक्टर का उपयोग करते हैं, तो आपको रंग ऑब्जेक्ट को बनाए रखना होगा या उसमें एक बनाए रखा प्रॉपर्टी सेट करना होगा। – gerry3

7

एक रंग बनाने के तरीके के एक जोड़े हैं।

मैं आरजीबी विधि का उपयोग करना पसंद करता हूं। यदि आप आरजीबी मूल्यों का उपयोग करते हैं, तो उन्हें 255 तक विभाजित करें (मुझे याद नहीं है क्यों, लेकिन मुझे पता है कि आपको इसे करने की आवश्यकता है)।

float rd = 225.00/255.00; 
float gr = 177.00/255.00; 
float bl = 140.00/255.00; 
[label setTextColor:[UIColor colorWithRed:rd green:gr blue:bl alpha:1.0]]; 

आशा इस मदद करता है .....

+2

कन्स्ट्रक्टर को पास किए गए लाल, हरे, नीले और अल्फा मान 0.0 और 1.0 के बीच होने की आवश्यकता है। – gerry3

27

मुझे ऐप में कई स्थानों पर उपयोग के लिए कुछ कस्टम रंगों को परिभाषित करने की आवश्यकता है - लेकिन रंग उस ऐप के लिए विशिष्ट हैं। मैंने श्रेणियों का उपयोग करने के बारे में सोचा, लेकिन हर बार शामिल करने के लिए अतिरिक्त फाइल नहीं लेना चाहता था। इसलिए मैंने अपने ऐप प्रतिनिधि में कुछ स्थैतिक तरीकों का निर्माण किया है।

MyAppDelegate.m

+ (UIColor*)myColor1 { 
return [UIColor colorWithRed:26.0f/255.0f green:131.0f/255.0f blue:32.0f/255.0f alpha:1.0f]; 
} 

में MyAppDelegate.h

+ (UIColor*)myColor1; 

में मैं रंग प्रति एक विधि है, या आप एक ही विधि करते हैं और एक पैरामीटर जोड़ सकते हैं।

मैं तो इसे इस तरह अनुप्रयोग में कहीं भी उपयोग कर सकते हैं:

myView.backgroundColor = [MyAppDelegate myColor1]; 

मुझे आशा है कि यह किसी और में मदद करता है।

+6

ऐप प्रतिनिधि अच्छे बनना चाहते हैं। लेकिन फिर वे चीजों के बारे में सीखते हैं। वे उन चीजों के बारे में सीखते हैं जिनके पास उनके पास कोई व्यवसाय नहीं है। – griotspeak

8
[UIColor colorWithRed:51.0/255.0, green:0.0, blue:153.0/255.0]; 

जब तक आप अपने विभाजन में फ़्लोटिंग पॉइंट मान का उपयोग करते हैं तो आपको कुछ भी नहीं डालना पड़ता है। सुनिश्चित करें कि आप फ़्लोटिंग पॉइंट मानों का उपयोग करें। उदाहरण के लिए: 33/255 = 0। जो काला हो जाएगा।

3

स्विफ्ट के लिए:

let swiftColor = UIColor(red: 1, green: 165/255, blue: 233, alpha: 1) 
8

स्विफ्ट 3

एक स्विफ्ट एक्सटेंशन बनाना आप अपने स्वयं के कस्टम रंग को परिभाषित करने और उन्हें जैसे रंगों में बनाया का उपयोग करने की अनुमति देता है।

यूआईसीओलर + कस्टमकॉलर।तेज

import UIKit 

extension UIColor { 

    class var customGreen: UIColor { 
     let darkGreen = 0x008110 
     return UIColor.rgb(fromHex: darkGreen) 
    } 

    class func rgb(fromHex: Int) -> UIColor { 

     let red = CGFloat((fromHex & 0xFF0000) >> 16)/0xFF 
     let green = CGFloat((fromHex & 0x00FF00) >> 8)/0xFF 
     let blue = CGFloat(fromHex & 0x0000FF)/0xFF 
     let alpha = CGFloat(1.0) 

     return UIColor(red: red, green: green, blue: blue, alpha: alpha) 
    } 
} 

उपयोग:

view.backgroundColor = UIColor.customGreen 

enter image description here

+0

यह उत्तर सूची के शीर्ष पर होना चाहिए। – amallard

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

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