2010-09-22 8 views
5

के समान आईओएस कस्टम बटन मैं विभिन्न स्थानों (एनएवी बार में नहीं) में बटन रखना चाहता हूं, जिनमें डायनामिक टेक्स्ट है। मैं उन्हें काले नौसेना बार बटन आइटम (ग्रे और काले ढाल के साथ) के समान दिखना चाहता हूं।बारबटन

मैं इन्हें बनाने के बारे में कैसे जाउंगा? उन्हें बटन के पाठ के आधार पर गतिशील चौड़ाई की आवश्यकता होती है। मुझे पता है कि मैं पीएनजी फाइलें बना सकता हूं और उन्हें खींच सकता हूं, लेकिन क्या कोई बेहतर तरीका है?

उत्तर

5

आपको छवियों का उपयोग करके स्वयं को बटन बनाना होगा। सीधे शब्दों में एक कस्टम UIButton बना सकते हैं और आवंटित उपयुक्त छवियाँ विभिन्न बटन के लिए कहा गया है जिसमें आपकी रुचि है।

आप UIImage के stretchableImageWithLeftCapWidth विधि खिंचाव और NSString उपयोग करने के लिए बनाया गया एक चित्र से कोई खींचे छवि बनाने के लिए 'का उपयोग रों sizeWithFont विधि कर सकते हैं यह निर्धारित करने के लिए कि बटन का आकार क्या होना चाहिए।

http://developer.apple.com/library/ios/documentation/uikit/reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/instm/UIImage/stretchableImageWithLeftCapWidth:topCapHeight:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

int capHeight = 31; 
int capWidth = 9; 
UIImage *buttonTemplate = [UIImage imageNamed:@"button_template.png"]; 
UIImage *stretchedButtonImage = [buttonTemplate stretchableImageWithLeftCapWidth:capWidth topCapHeight:capHeight]; 
[button setBackgroundImage:stretchedButtonImage forState:UIControlStateNormal]; 
+0

महान:

कुछ इस तरह चाल कर सकता है। यह मुझे सही रास्ते पर डाल दिया। दूसरों के लिए ध्यान दें: 'stretchableImageWithLeftCapWidth: topCapHeight:' आईओएस 5 में बहिष्कृत कर दिया गया है। 'ResizableImageWithCapInsets:' के बजाय 'का उपयोग करें। (जैसा कि पेज से जुड़ा हुआ है।) – PEZ

+0

मैं अपनी खुद की टिप्पणी में जोड़ना चाहता हूं कि यदि आपका ऐप आईओएस <5 का समर्थन करता है तो आपको यह जांचना चाहिए कि 'resizableImageWithCapInsets:' चयनकर्ता वहां है और अन्यथा बहिष्कृत विधि का उपयोग करें। – PEZ