2010-01-13 13 views
15

मेरे पास एक UISegmentedControl है जिसमें छः सेगमेंट हैं, मैं चाहता हूं कि मूल्य बदलते समय उन्हें एक विधि कॉल करें, लेकिन जब भी प्रत्येक सेगमेंट UIControlEventTouchDragIn प्राप्त करता है क्योंकि मैं एक UILabel को इसके नाम के साथ दिखाना चाहता हूं व्यक्ति उस पर कुछ चुनने की कोशिश कर रहा है और अपनी अंगुली को नियंत्रण में खींचता है, लेकिन जब मैं चीज़ में खींचता हूं तब भी खंडित नियंत्रण इस कॉल को नहीं देखता है। कृपया मदद करे। हो सकता है कि मुझे उस नियंत्रण पर UIButtons बनाने की आवश्यकता है जो ड्रैग पर विधियों को कॉल करें, लेकिन जब वे टैप प्राप्त करते हैं तो मान परिवर्तित विधि को कॉल करें।UISegmentedControl प्रतिनिधि/टच घटनाक्रम

उत्तर

-6

आप केवल UISegmentedControl को उपclass कर सकते हैं और छूने और खींचने के स्थान को प्रबंधित करने के लिए - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { return; } विधि ओवरराइड कर सकते हैं।

ऐसा होने के नाते आप यह बताने में सक्षम नहीं होंगे कि ड्रैग किस सेगमेंट पर है, यह आपके लिए उन कार्यों का उपयोग करके मैन्युअल रूप से सब कुछ करने और ट्रैक करने के लिए बेहतर हो सकता है।

+1

मेरी इच्छा है कि उन्होंने ऐसा करना आसान बना दिया। वास्तव में मैं करता हूं!! – Jaba

33

शायद मैं आपके सवाल का सही ढंग से समझ नहीं है, लेकिन तुम सिर्फ इस का उपयोग नहीं कर सकता है:

[segmentedControl addTarget:self 
     action:@selector(action:) 
     forControlEvents:UIControlEventValueChanged]; 

और बस UIControlEventTouchDragIn द्वारा UIControlEventValueChanged की जगह? फिर आपकी एक्शन विधि में जो कुछ भी करने की ज़रूरत है जैसे यूआईएलएबल के पाठ को बदलना।

मेरे पास प्रत्येक सेल में कोशिकाओं का एक गुच्छा और एक UISegmentedControll के साथ एक UITAbleView है और यह मेरे लिए ठीक काम करता है।

UISegmentedControl के लिए प्रलेखन ऑनलाइन अनुपलब्ध प्रतीत होता है लेकिन आप इसे एक्सकोड के ऑर्गनाइज़र में देख सकते हैं और उपरोक्त कोड पहला उदाहरण है।

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