2010-11-02 12 views
5

के साथ UISegmentedControl बस टैबबार की तरह, मैं UISegmentedControl पर बैज दिखाना चाहता हूं। जैसा कि मैं के लिए उपलब्ध UISegmentedControl के लिए किसी पूर्वनिर्धारित विधियों को नहीं देख सकता।बैज संख्या

alt text

मैं सिर्फ यह की चोटी पर एक छवि के रूप बिल्ला जोड़ने के बारे में सोचा था, लेकिन शायद वहाँ कुछ बेहतर तरीका है।

उत्तर

12

Here एक छोटी सी तीसरी पार्टी लाइब्रेरी है जिसे मैंने विभिन्न चीजों पर बैज खींचने के लिए उपयोग किया है। यह बहुत अच्छा है। उदाहरण के लिए, मेरे डिजाइन से मेल खाने के लिए बैज का रंग बदलना छोटा था।

एक बार जब आप अपने प्रोजेक्ट में इस वर्ग के लाने के लिए और यह आपके विचार नियंत्रक में शामिल हैं, तुम जाओ:

CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:@"Badge 1"]; 

... और फिर जो कुछ भी बात आप बैजिंग कर रहे हैं उसका subview के रूप customBadge1 जोड़ें।

+0

COOL तृतीय पक्ष लाइब्रेरी के लिए धन्यवाद ... धन्यवाद :) – Tariq

+0

मैंने एक UISegmentedControl सबक्लास बनाया है जो इस लाइब्रेरी का उपयोग करता है और बैजिंग को और भी आसान बनाता है - नीचे मेरा उत्तर देखें। –

0

टैब बैज के विपरीत कोई बैज संपत्ति या विधि नहीं है। यदि आप ऐसा करना चाहते हैं तो आपको बस उस पर एक कस्टम छवि डालना होगा। आप खंडित नियंत्रण को उपclass कर सकते हैं और एक ऐसा फ़ंक्शन बना सकते हैं जो आपके लिए यह करता है।

+0

हाँ मुझे भी लगता है कि कस्टम छवि का उपयोग करके यह संभव है। उत्तर – Tariq

6

मुझे आज यह समस्या थी, इसलिए मैंने एक UISegmentedControl सबक्लास को एक साथ रखा है जो आपको प्रत्येक सेगमेंट पर आसानी से बैज नंबर सेट करने की अनुमति देता है।

का उपयोग करते हुए यह जितना आसान है:

[segmentedControl setBadgeNumber:1 forSegmentAtIndex:0]; 

स्क्रीनशॉट, प्रलेखन और स्रोत कोड https://github.com/dave-thompson/MESegmentedControl पर हैं।

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