2012-11-15 7 views
5

में समय अंतराल मैं उद्देश्य सी और एक्स-कोड के लिए बहुत नया हूं। मैंने अभी पिछले हफ्ते इसे सीखना शुरू कर दिया था। क्षमा करें अगर सवाल बहुत आसान है।उद्देश्य सी

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

उत्तर

1

आप NSTimer उपयोग कर सकते हैं:

[NSTimer scheduledTimerWithTimeInterval:2.0f 
           target:self 
           selector:@selector(displayChoiceTimerFired:) 
           userInfo:nil 
           repeats:NO]; 

यह एक टाइमर है कि 2 सेकंड के बाद displayChoiceTimerFired: विधि निष्पादित करेंगे निर्धारित करेगा। (है कि विधि का तर्क टाइमर ही है।)

या आप भी NSObject के perform तरीकों का उपयोग कर सकते हैं:

[self performSelector:@selector(displayChoice:) withObject:nil afterDelay:2.0f]; 
+0

लेकिन मैं अभी भी यूआई बिल्डर में वस्तुओं सामान्य रूप से सही जोड़ने पर वे देर से प्रदर्शित किया जाएगा की संख्या है उपयोग कर सकते हैं। अगर मैं एक और खिड़की बनाउंगा तो बेहतर होगा? टाइमर आग लगने पर –

+0

या तो नया यूआई प्रोग्रामेटिक रूप से बनाएं। या उन्हें इंटरफ़ेस बिल्डर पर छिपाएं और फिर टाइमर को 'object.hidden = NO' का उपयोग करके आग लगने पर दिखाई दें। – DrummerB

+0

thx बहुत कुछ। वह वास्तव में सहायक था –

1

कैसे आप अपने कट दृश्यों प्रदर्शित कर रहे हैं पर निर्भर करता है, सुरक्षित तरीका इन प्रदर्शित करने के लिए जब आपका कट दृश्य समाप्त होता है तो UI तत्व किसी भी तरह से कार्रवाई को ट्रिगर करेंगे। एनएसटीमर कार्यान्वयन के साथ समस्या मैं पूर्ववत कर सकता हूं यदि किसी भी कारण से, आपके एनटीटीमर अंतराल की तुलना में आपके कट दृश्य को खेलने में अधिक समय लगता है, तो आपके यूआई तत्व समय-समय पर प्रदर्शित होते हैं। बस मेरे दो सेंट एक अलग पर, लेकिन मैं एक और अधिक सुरुचिपूर्ण दृष्टिकोण होने के लिए विश्वास करता हूं।

1
[self performSelector:@selector(displayChoice:) withObject:nil afterDelay:1.0]; 

आप इस पद्धति ... जहां विलंब के बाद सेकंड