2012-05-11 14 views
5

में एनएसटीमर को उपयोगकर्ता इंटरफ़ेस क्रियाओं में देरी या बाधित होने से कैसे रोकें I NSTimer को किसी तालिका को स्क्रॉल करने वाले उपयोगकर्ता द्वारा देरी से कैसे रोक सकता है?आईएसओ 5

मैं इस सवाल का जवाब मिला:

मैं एक टाइमर है कि 0.4 0.8 सेकंड के अंतराल के साथ के बारे में 8 या 9 बार दोहराया था। मुझे बहुत सटीकता की आवश्यकता नहीं है, लेकिन यदि उपयोगकर्ता किसी तालिका को स्क्रॉल करता है तो टाइमर स्क्रॉलिंग समाप्त होने तक काम करना बंद कर देगा (यह कुछ सेकंड प्रतीक्षा हो सकता है!)। मैंने सोचा कि मुझे पृष्ठभूमि धागे की जरूरत है, लेकिन पृष्ठभूमि धागे पर टाइमर लागू करने के लिए कुछ जटिल थे।

मेरी समस्या का उत्तर बहुत ही सरल और आसान था। मैं सिर्फ टाइमर लागू होने के बाद एक लाइन जोड़ने की जरूरत:

//////////// start the timer 

self.playingTimer = [NSTimer scheduledTimerWithTimeInterval:tempo target:self selector:@selector(playSoundFromArray:) userInfo:nil repeats:YES]; 

//////////// the magic line: 

[[NSRunLoop currentRunLoop] addTimer:self.playingTimer forMode:UITrackingRunLoopMode]; 

अब मैं के रूप में ज्यादा मैं चाहता हूँ और मेरी टाइमर ठीक काम के रूप में तालिका स्क्रॉल कर सकते हैं !!!

अब मैं थोड़ा और NSRunLoop ...

+0

आपको वास्तव में प्रश्न फ़ॉर्म में पोस्ट करना चाहिए, फिर अपने प्रश्न का उत्तर दें। –

+0

यूप। पहले पैराग्राफ को हटाएं, फिर प्रश्न में दूसरे के पहले दो वाक्यों को शामिल करें। उत्तर में उत्तरदायी चला जाता है। मैं दोनों को ऊपर उठाऊंगा। –

+0

सुझाव के लिए धन्यवाद। यह मेरा पहला बंदरगाह है। मुझे लगभग 8 घंटे में अपने प्रश्नों का उत्तर देने की अनुमति नहीं है ... – alvira

उत्तर

1

आप NSDefaultRunLoopMode मोड के लिए अपना टाइमर जोड़ना चाहिए अध्ययन करने के लिए की जरूरत है। UITrackingRunLoopMode का उपयोग UI क्रियाओं को ट्रैक करके किया जाता है (आपके केस स्क्रॉलिंग में)।

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