दिलचस्प पोस्ट
कन्वर्ट करने के लिए चार में सी int और सी ++ jqGrid गतिशील रूप से ग्रिड पेजर आईडी को हल करें? Jquery का उपयोग कर एक div के अंदर केवल पाठ को बदलें कैसे Android में टोस्ट की स्थिति को बदलने के लिए? कैसे एक फ़ाइल में 'सामान्य' linebreak के लिए ^ एम लाइनब्रेट को बदलने में vim में खोला? संग्रहित प्रक्रिया 'dbo.aspnet_CheckSchemaVersion' नहीं मिल सका यह जांचने का सबसे अच्छा तरीका क्या है कि कोई फ़ाइल सी में मौजूद है या नहीं? (पार मंच) पायथन फ़ाइल संचालन एंड्रॉइड एमुलेटर प्रारंभ नहीं हो रहा है, "अमान्य कमांड-लाइन पैरामीटर" दिखा रहा है यह निर्धारित करने के लिए कि क्या कोई पोर्ट एक विंडोज सर्वर पर खुला है? क्या कोई संदर्भ का पता लगाने का कोई तरीका है? उचित यूटीएफ -8 एन्कोडेड वर्णों के लिए "\ u00ed" जैसे यूनिकोड एस्केप अनुक्रम को कैसे डिकोड किया जाए? एक सरणी में सबसे बड़ा मूल्य का सूचकांक लौटें अपाचे POI के साथ एक बड़ी एक्सएलएसएक्स फ़ाइल कैसे लोड करें? अनचेक वाले चेकबॉक्स को पोस्ट करें

क्या UIButtons पृष्ठभूमि रंग बदलना संभव है?

यह मेरे पास स्टम्प्ड है

क्या आईफोन के लिए कोको में UIButton के पृष्ठभूमि का रंग बदलना संभव है? मैंने पृष्ठभूमि रंग सेट करने की कोशिश की है लेकिन यह केवल कोनों में परिवर्तन करता है setBackgroundColor: ऐसी चीजों के लिए एकमात्र तरीका उपलब्ध है।

 [random setBackgroundColor:[UIColor blueColor]]; [random.titleLabel setBackgroundColor:[UIColor blueColor]]; 

वेब के समाधान से एकत्रित समाधान "क्या UIButtons पृष्ठभूमि रंग बदलना संभव है?"

इसे एक प्रतिकृति बनाकर प्रोग्राम किया जा सकता है:

  loginButton = [UIButton buttonWithType:UIButtonTypeCustom]; [loginButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; loginButton.backgroundColor = [UIColor whiteColor]; loginButton.layer.borderColor = [UIColor blackColor].CGColor; loginButton.layer.borderWidth = 0.5f; loginButton.layer.cornerRadius = 10.0f; 

संपादित करें: बिल्कुल, आपको #import <QuartzCore/QuartzCore.h>

संपादित करें: सभी नए पाठकों के लिए, आपको कुछ विकल्पों को "एक और संभावना" के रूप में जोड़ा जाना चाहिए। आपके विचार के लिए

चूंकि यह एक पुराना उत्तर है, इसलिए मैं समस्या निवारण के लिए टिप्पणियां पढ़ने की सलाह देता हूं

मेरे पास एक अलग दृष्टिकोण है,

 [btFind setTitle:NSLocalizedString(@"Find", @"") forState:UIControlStateNormal]; [btFind setBackgroundImage:[CommonUIUtility imageFromColor:[UIColor cyanColor]] forState:UIControlStateNormal]; btFind.layer.cornerRadius = 8.0; btFind.layer.masksToBounds = YES; btFind.layer.borderColor = [UIColor lightGrayColor].CGColor; btFind.layer.borderWidth = 1; 

आम भावना से,

 + (UIImage *) imageFromColor:(UIColor *)color { CGRect rect = CGRectMake(0, 0, 1, 1); UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [color CGColor]); // [[UIColor colorWithRed:222./255 green:227./255 blue: 229./255 alpha:1] CGColor]) ; CGContextFillRect(context, rect); UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img; } 

#import <QuartzCore/QuartzCore.h> लिए मत भूलना

मुझे लगता है कि आप UIButtonTypeRoundedRect के साथ UIButtonTypeRoundedRect बारे में बात कर रहे हैं? आप उस का पृष्ठभूमि का रंग बदल नहीं सकते। जब आप इसे पृष्ठभूमि का रंग बदलने की कोशिश करते हैं, तो आप उस बटन के रंग को बदलते हुए बदलते हैं (जो आमतौर पर स्पष्ट है)। तो जाने के दो तरीके हैं या तो आप UIButton subclass और इसके – -drawRect: अधिलेखन -drawRect: विधि या आप विभिन्न बटन राज्यों के लिए छवियां बनाते हैं (जो पूरी तरह से ठीक है)।

अगर आप इंटरफ़ेस बिल्डर में पृष्ठभूमि चित्र सेट करते हैं तो आपको यह नोट करना चाहिए कि आईबी बटन सभी बटनों के लिए छवियों को सेट करने का समर्थन नहीं करता है, इसलिए मैं इस तरह से कोड में छवियों को सेट करने की सलाह देता हूं:

 UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; [myButton setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal]; [myButton setBackgroundImage:[UIImage imageNamed:@"disabled.png"] forState:UIControlStateDisabled]; [myButton setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected]; [myButton setBackgroundImage:[UIImage imageNamed:@"higligted.png"] forState:UIControlStateHighlighted]; [myButton setBackgroundImage:[UIImage imageNamed:@"highlighted+selected.png"] forState:(UIControlStateHighlighted | UIControlStateSelected)]; 

आखिरी पंक्ति दिखाती है कि चुने हुए और हाइलाइट किए गए राज्य के लिए एक छवि कैसे सेट करें (यह एक आईबी सेट नहीं कर सकता है)। यदि आपको चयनित बटन की आवश्यकता नहीं है तो चयनित छवियों (पंक्ति 4 और 6) की आवश्यकता नहीं है।

एक अन्य संभावना:

  1. इंटरफ़ेस बिल्डर में एक UIButton बनाएँ
  2. इसे एक प्रकार 'कस्टम' दें
  3. अब, आईबी में पृष्ठभूमि रंग बदलना संभव है

हालांकि, बटन वर्ग है, और वह ऐसा नहीं है जो हम चाहते हैं। इस बटन के संदर्भ के साथ एक IBOutlet बनाएँ और viewDidLoad विधि को निम्नलिखित जोड़ें:

 [buttonOutlet.layer setCornerRadius:7.0f]; [buttonOutlet.layer setClipToBounds:YES]; 

QuartzCore.h आयात करने के लिए मत भूलना

उप-वर्ग UIButton और ओवरराइड सेट हाइलाइटेड और सेट चयनित विधियां

 -(void) setHighlighted:(BOOL)highlighted { if(highlighted) { self.backgroundColor = [self.mainColor darkerShade]; } else { self.backgroundColor = self.mainColor; } [super setHighlighted:highlighted]; } -(void) setSelected:(BOOL)selected { if(selected) { self.backgroundColor = [self.mainColor darkerShade]; } else { self.backgroundColor = self.mainColor; } [super setSelected:selected]; } 

मेरी गहरी छाया विधि इस तरह से एक UIColor श्रेणी में है

 -(UIColor*) darkerShade { float red, green, blue, alpha; [self getRed:&red green:&green blue:&blue alpha:&alpha]; double multiplier = 0.8f; return [UIColor colorWithRed:red * multiplier green:green * multiplier blue:blue*multiplier alpha:alpha]; } 

रंगीन UIButton

यदि आप छवियों का उपयोग नहीं करना चाहते हैं, और इसे गोल रास्त शैली की तरह दिखना चाहते हैं, तो यह कोशिश करें। बस UIButton पर एक समान फ्रेम और ऑटो आकार बदलने मुखौटा के साथ एक UIView, 0.3 करने के लिए अल्फा सेट, और एक रंग के लिए पृष्ठभूमि सेट। फिर रंग ओवरले दृश्य से गोलाकार किनारों को क्लिप करने के लिए नीचे स्निपेट का उपयोग करें। इसके अलावा, यूआईवीयू पर यू.बी. में 'यूज़र इंटरैक्शन सक्षम' चेकबॉक्स को अनचेक करें ताकि स्पर्श इवेंट्स को यूआईबुटन के नीचे कैस्केड करने की इजाजत दी जा सके।

एक तरफ प्रभाव यह है कि आपका टेक्स्ट भी रंगीन हो जाएगा

 #import <QuartzCore/QuartzCore.h> colorizeOverlayView.layer.cornerRadius = 10.0f; colorizeOverlayView.layer.masksToBounds = YES; 

एक अन्य संभावना (सर्वश्रेष्ठ और सबसे खूबसूरत इमो):

इंटरफ़ेस बिल्डर में आवश्यक पृष्ठभूमि रंग में 2 खंडों के साथ एक UISegmentedControl बनाएँ प्रकार को 'बार' में सेट करें फिर, इसे केवल एक सेगमेंट बनाने के लिए बदलें। इंटरफ़ेस बिल्डर एक सेगमेंट को स्वीकार नहीं करता है ताकि आप को प्रोग्रामेटिक रूप से करना पड़े।

इसलिए, इस बटन के लिए एक IBOutlet बनाएं और इसे अपने दृश्य के viewDidLoad पर जोड़ें:

 [segmentedButton removeSegmentAtIndex:1 animated:NO]; 

अब आपके पास विशिष्ट पृष्ठभूमि रंग के साथ एक सुंदर चमकदार, रंगीन बटन है कार्यों के लिए, 'मान परिवर्तित' ईवेंट का उपयोग करें

(मुझे इसे http://chris-software.com/index.php/2009/05/13/creating-a-nice-glass-buttons/ पर मिला है)। धन्यवाद क्रिस!

ठीक है, मैं 99% प्रतिशत सकारात्मक हूं कि आप सिर्फ यूआई बटन की पृष्ठभूमि का रंग बदल नहीं सकते हैं। इसके बजाय आपको पृष्ठभूमि चित्रों को जाना है जो मुझे लगता है कि एक दर्द है। मुझे आश्चर्य है कि मुझे यह करना था।

यदि मैं गलत हूं या पृष्ठभूमि छवियों को सेट किए बिना बेहतर तरीके से किया है तो कृपया मुझे बताएं

 [random setBackgroundImage:[UIImage imageNamed:@"toggleoff.png"] forState:UIControlStateNormal]; [random setTitleColor:[UIColor darkTextColor] forState:UIControlStateNormal]; [random setBackgroundImage:[UIImage imageNamed:@"toggleon.png"] forState:UIControlStateNormal]; [random setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 

आप बटन को एक कॉलर भी जोड़ सकते हैं – आप इन रंगों के साथ कई चीजें कर सकते हैं, यह उदाहरण एक सादे रंग परत का उपयोग करता है, आप रंग आसानी से स्नातक कर सकते हैं। ध्यान रखें कि अतिरिक्त परतें उन के नीचे अस्पष्ट हैं

 +(void)makeButtonColored:(UIButton*)button color1:(UIColor*) color { CALayer *layer = button.layer; layer.cornerRadius = 8.0f; layer.masksToBounds = YES; layer.borderWidth = 4.0f; layer.opacity = .3;// layer.borderColor = [UIColor colorWithWhite:0.4f alpha:0.2f].CGColor; CAGradientLayer *colorLayer = [CAGradientLayer layer]; colorLayer.cornerRadius = 8.0f; colorLayer.frame = button.layer.bounds; //set gradient colors colorLayer.colors = [NSArray arrayWithObjects: (id) color.CGColor, (id) color.CGColor, nil]; //set gradient locations colorLayer.locations = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:1.0f], nil]; [button.layer addSublayer:colorLayer]; } 

प्रति @ इथन बी सुझाव और @करिम, एक भरी हुई आयत बनाने के लिए, मैंने इसे हासिल करने के लिए UIButton के लिए एक श्रेणी बनाई है।

बस श्रेणी कोड में ड्रॉप करें : https://github.com/zmonteca/UIButton-PLColor

उपयोग:

 [button setBackgroundColor:uiTextColor forState:UIControlStateDisabled]; 

उपयोग के लिए वैकल्पिक स्थान:

 UIControlStateNormal UIControlStateHighlighted UIControlStateDisabled UIControlStateSelected 

UIControlEventTouched लिए UIButton लिए एक दूसरा लक्ष्य जोड़ें और UIButton पृष्ठभूमि रंग बदलें। फिर इसे वापस UIControlEventTouchUpInside लक्ष्य में बदलें;

पेशेवर और अच्छे लगते बटन के लिए, आप इस कस्टम बटन घटक की जांच कर सकते हैं । आप इसे अपने विचारों और तालिका में सीधे उपयोग कर सकते हैं या अपनी आवश्यकताओं को पूरा करने के लिए स्रोत कोड को संशोधित कर सकते हैं। उम्मीद है की यह मदद करेगा।

यह उप-वर्गीकरण UIButton के रूप में उतना ही सुरुचिपूर्ण नहीं है, हालांकि यदि आप अभी कुछ त्वरित करना चाहते हैं – तो मैंने जो किया, कस्टम बटन बना दिया, फिर 1px द्वारा 1px छवि से रंग जिसे मैं बटन चाहता हूँ, और पृष्ठभूमि सेट हाइलाइट किए गए राज्य के लिए उस चित्र में बटन का – मेरी जरूरतों के लिए काम करता है

मुझे पता है कि यह बहुत समय पहले पूछा गया था और अब एक नया UIButtonTypeSystem है लेकिन नए प्रश्नों को इस प्रश्न के डुप्लिकेट के रूप में चिह्नित किया जा रहा है, इसलिए यह मेरा नया जवाब आईओएस 7 सिस्टम बटन के संदर्भ में है, .tintColor संपत्ति का उपयोग करें।

 let button = UIButton(type: .System) button.setTitle("My Button", forState: .Normal) button.tintColor = .redColor() 

[myButton setBackgroundColor:[UIColor blueColor]]; [myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

संभव है कि इस तरह से परिवर्तन करें या स्टोरीबोर्ड पर जायें और दाईं ओर स्थित विकल्पों पर पृष्ठभूमि बदलें।

स्विफ्ट 3:

  static func imageFromColor(color: UIColor, width: CGFloat, height: CGFloat) -> UIImage { let rect = CGRect(x: 0, y: 0, width: width, height: height); UIGraphicsBeginImageContext(rect.size) let context = UIGraphicsGetCurrentContext()! context.setFillColor(color.cgColor) context.fill(rect) let img = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() return img; } let button = UIButton(type: .system) let image = imageFromColor(color: .red, width: button.frame.size.width, height: button.frame.size.height) button.setBackgroundImage(image, for: .normal)