2011-01-01 7 views
5

कभी-कभी, फोन कॉल जैसे बाधाएं होती हैं और आईफोन या आईपैड में ऐप के नियमित व्यवहार को परेशान करती हैं।UIScrollView या अन्य के कैलकुलेशन को कैसे पकड़ें?

उदाहरण के लिए, मैंने एक UIScrollView उदाहरण बनाया और UIScrollView प्रतिनिधि विधियों को कार्यान्वित किया: scrollViewWillBeginDragging और scrollViewDidEndDragging (और scrollViewDidEndDecelerating)।

एक स्क्रॉलव्यूविलबिनगन ड्रैगिंग विधि मेरे ऐप में सभी कस्टम बटन निष्क्रिय कर दी गई है। फिर scrollViewDidEndDragging और scrollViewDidEndDecelerating विधियों ने इन कस्टम बटन को सक्रिय किया। यही है, जबकि उपयोगकर्ता स्क्रॉल किया गया, सभी कस्टम बटन थोड़ी देर के लिए निष्क्रिय हो गए।

समस्या यह है कि जब उपयोगकर्ता खींचें करने के लिए शुरू कर दिया और सिर्फ scrollViewDidEndDragging और scrollViewDidEndDecelerating में से किसी एक UIScrollView उदाहरण आयोजित की, अगर मैं एक घर बटन और एक पावर बटन दबाकर एक स्क्रीनशॉट ले लिया है, तो था नहीं कहा गया। तो ऐप गड़बड़ हो गया।

मैंने अपने UIViewController में एक UIAplplicationWillResignActiveNotification विधि लागू की, लेकिन स्क्रीनशॉट लेने के बाद इसे कॉल नहीं किया गया।

मैं किसी भी प्रकार के बाधा को कैसे पकड़ सकता हूं जो घटनाओं के नियमित प्रवाह को परेशान करता है?

कभी-कभी, छूता है और स्पर्श करता है बिना किसी रुकावट के कारण रद्द नहीं किया जाता है।

धन्यवाद।

+0

ViewWillAppear को कार्यान्वित करने के बारे में या ViewDidAppear और स्क्रीनशॉट लेने के बाद उन्हें कॉल करने पर परीक्षण करने के बारे में कैसे? फिर उन तरीकों में यदि (beDragged == TRUE) अपनी scrollViewDidEndDragging विधि को कॉल करें। – adam

+0

viewDidScroll विधि भी बाधाओं में भी बुलाया जाता है? संभवतः आपके पास समस्या के लिए वैकल्पिक दृष्टिकोण नहीं है। – nacho4d

+0

मैं चीजों के लिए नया हूं, इसलिए मुझे यकीन नहीं है कि जब आप एक अलग दृश्य का उपयोग कर रहे थे तो आप बटन को अक्षम क्यों करेंगे? मेरे पास विभिन्न रीडिंग्स से छाप है कि एक बार जब आप एक बटन को अक्षम करना चाहते हैं तो यह वास्तव में यह कार्य नहीं कर सकता है क्योंकि कुछ डेटा गायब है, यानी कोई चयन नहीं है, या कोई फ़ील्ड भरा नहीं है, आदि। । –

उत्तर

2

मुझे एक ही समस्या का सामना करना पड़ा और एनएसओब्जेक्ट की performSelector:withObject:afterDelay विधि का उपयोग कर इसे छुटकारा दिलाया।

scrollViewDidScroll में:

[NSObject cancelPreviousPerformRequestsWithTarget:yourController]; 
[yourController deactivateButtons]; 
[yourController performSelector:@selector(activateButtons) withObject:nil afterDelay:0.5]; 

आप इस तकनीक की कोशिश और अन्य है कि आप का उल्लेख के साथ संयोजित कर सकते हैं।
आशा है, इससे मदद मिलेगी। सौभाग्य!

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