का उपयोग करते समय resizableImageWithCapInsets का उपयोग करते समय: UIButton के लिए एक छवि बनाने के लिए केवल सामान्य स्थिति (राज्य सेटबैकग्राउंड इमेज का उपयोग कर छवि सेट करता है: forState:) काम करता है। अन्य सभी राज्य तैयार छवि के बजाय एक अंतर दिखाते हैं। UIButton का कहना है कि यदि किसी विशेष स्थिति के लिए कोई छवि सेट नहीं की गई है, तो सामान्य स्थिति छवि का उपयोग अक्षम और चयनित राज्यों के ओवरले के साथ किया जाएगा।resizableImageWithCapInsets का उपयोग करना: बटन के लिए छवि केवल राज्य सेट के लिए काम करती है, अन्य राज्य एक "अंतराल"
यहाँ चयनित राज्य है: यहाँ
और स्रोत छवि है:
यहाँ सामान्य स्थिति हैयह स्पष्ट रूप से प्रदान की गई आकार बदलने योग्य छवि का उपयोग कर रहा है, लेकिन छवि आकार बदल रहे क्षेत्र को चित्रित नहीं कर रही है। (आप बाएं और दाएं किनारों को देख सकते हैं लेकिन मध्य क्षेत्र जो फैलाया जाना है, खींचा नहीं गया है)।
दिलचस्प बात यह है कि खिंचाव इमेज विथलफ्ट कैपविड्थ: टॉप कैपहाइट: काम करता है। अब यह आईओएस 5 में एक बहिष्कृत विधि है, लेकिन नए एपीआई में दिखाए गए अंतर के साथ, मैं इसका उपयोग कर अटक सकता हूं।
मुझे पता है कि मैं प्रत्येक राज्य के लिए और अधिक छवियां प्रदान कर सकता हूं लेकिन यह उस उद्देश्य को हरा देता है जिसे मैं स्मृति पदचिह्न को कम करने की कोशिश कर रहा हूं और साथ ही अपने ग्राफिक्स डिजाइनर पर अतिरिक्त निर्भरता जोड़ता हूं जिसे मैं टालना चाहता हूं।
// This is the gist of the code being used
UIImage* image = [UIImage imageNamed:@"button.png"];
UIEdgeInsets insets = UIEdgeInsetsMake(image.size.height/2, image.size.width/2, image.size.height/2, image.size.width/2);
image = [image resizableImageWithCapInsets:insets];
[self.button setBackgroundImage:image forState:UIControlStateNormal];
// Even doing the following results in the same behaviour
[self.button setBackgroundImage:image forState:UIControlStateSelected];
कोड स्निपेट जोड़ा गया और स्क्रीनशॉट होस्ट किया गया (पाठ्यक्रम के प्रासंगिक क्षेत्र में फसल) – NSProgrammer
यह अजीब है ... मुझे पसंद है अगर हम कर सकते हैं बटन.png देखने के लिए। –
http://i40.tinypic.com/ea35zq.png - मैं सिर्फ एक नया उपयोगकर्ता के रूप में एक पद के लिए 2 लिंक जोड़ सकते हैं, लेकिन यहाँ sourece – NSProgrammer