ios - UIButton[डुप्लिकेट] के लिए पृष्ठभूमि छवि के रूप में उपयोग करने के लिए UIColor से UIImage बनाना




objective-c (5)

Xamarin.iOS समाधान

 public UIImage CreateImageFromColor()
 {
     var imageSize = new CGSize(30, 30);
     var imageSizeRectF = new CGRect(0, 0, 30, 30);
     UIGraphics.BeginImageContextWithOptions(imageSize, false, 0);
     var context = UIGraphics.GetCurrentContext();
     var red = new CGColor(255, 0, 0);
     context.SetFillColor(red);
     context.FillRect(imageSizeRectF);
     var image = UIGraphics.GetImageFromCurrentImageContext();
     UIGraphics.EndImageContext();
     return image;
 }

इस प्रश्न का उत्तर यहां दिया गया है:

मैं इस तरह एक रंगीन छवि बना रहा हूँ:

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

और उसके बाद इसे बटन की पृष्ठभूमि छवि के रूप में उपयोग करें:

[resultButton setBackgroundImage:img forState:UIControlStateNormal];

यह रेडकोलर का उपयोग करके बहुत अच्छा काम करता है, हालांकि मैं एक आरजीबी रंग का उपयोग करना चाहता हूं (जैसा कि टिप्पणी की गई पंक्ति में दिखाया गया है)। जब मैं आरजीबी रंग का उपयोग करता हूं, तो बटन पृष्ठभूमि बदल नहीं जाती है।

मैं क्या खो रहा हूँ?


आपका कोड ठीक काम करता है। आप Iconfactory के xScope के साथ आरजीबी रंगों को सत्यापित कर सकते हैं। बस इसकी तुलना करें [UIColor whiteColor]


बिंदुओं को सभी मानों में जोड़ें:

[[UIColor colorWithRed:222./255. green:227./255. blue: 229./255. alpha:1] CGColor]) ;

अन्यथा, आप int द्वारा फ्लोट विभाजित कर रहे हैं।


मुझे लगता है कि 227 में 255./255 को पूर्णांक के रूप में माना जाता है और विभाजन हमेशा 0 लौटाता है


CGContextSetFillColorWithColor(context,[[UIColor colorWithRed:(255/255.f) green:(0/255.f) blue: (0/255.f) alpha:1] CGColor]);




uiimage