2009-10-06 25 views
10

मेरे पास एक दृश्य पर uilabel और uislider है। मैं स्लाइडर के स्लाइडर.रेंज का उपयोग कर लेबल का समय सेट करना चाहता हूं 00:00:00 से 03:00:00 है। इसका मतलब है 3 घंटे। और स्लाइडर पर इंटरवल 0.5 मिनट है। साथ ही कैसे दिखाना है। मैं चाहता हूं कि टाइमर रन हो, भले ही एप्लिकेशन बंद हो।आईफोन में यूलाबेल पर उलटी गिनती कैसे दिखाना है?

उत्तर

40

सबसे पहले, आपके ऐप बंद होने के बाद टाइमर चलने का कोई तरीका नहीं है। आईफोन पर पृष्ठभूमि ऐप्स को बस अनुमति नहीं है। इसे टाइमर के साथ नकली बनाने के तरीके हैं (ऐप से बाहर निकलने पर टाइमस्टैम्प सहेजें, और बैक अप शुरू होने पर इसे जांचें), लेकिन यह उस मामले को संभाल नहीं पाएगा जहां ऐप शुरू होने से पहले आपका टाइमर समाप्त हो जाता है अप।

उलटाउन के साथ UILabel को अद्यतन करने के लिए, एक एनएसटीमर शायद काम करेगा। कुछ इस तरह, यह मानते हुए कि आप एक NSTimer टाइमर, एक पूर्णांक secondsLeft हैं और अपनी कक्षा में एक UILabel countdownLabel है:

timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES]; 

updateCountdown विधि:

-(void) updateCountdown { 
    int hours, minutes, seconds; 

    secondsLeft--; 
    hours = secondsLeft/3600; 
    minutes = (secondsLeft % 3600)/60; 
    seconds = (secondsLeft %3600) % 60; 
    countDownlabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds]; 
} 

मैं

टाइमर बनाएं मेरे ऐप्स में से एक में कुछ ऐसा ही करें, लेकिन अभी कोड को आसान नहीं है।

+0

क्या secondsLeft का मूल्य है देखें। –

+0

यह उन सेकंडों की संख्या होगी जिन्हें आप टाइमर चलाने के लिए चाहते हैं, अधिकतर संभवतः यूआईएसलाइडर के मूल्य के आधार पर सेटअप करें। –

+0

जैसा कि शॉन ने कहा था, आप ऐप बंद होने के बाद टाइमर चलाना नहीं रख सकते हैं, इसलिए जब आपका ऐप UIAplplicationWillTerminateNotification भेजता है तो मुझे प्रारंभ समय का ट्रैक रखना सुनिश्चित करें (मुझे लगता है कि यह है, मैं जंगली हूँ)। ऐप नहीं चल रहा है जब एक टाइमर चलाने के लिए एकमात्र कामकाज पुश अधिसूचना का उपयोग करना है। लेकिन वह मूल्यवान हो सकता है। – pxl

2

यह कोड गलत है।

timer = [NSTimer scheduledTimerWithInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES]; 

यह होना चाहिए।

timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES]; 
0

जब आपके आवेदन किया था आप अपनी घड़ी को चालू रखने कर सकते हैं पृष्ठभूमि में प्रवेश करती है,

रूप @shawn craver यू बताया आप यह कर सकते, लेकिन जब आवेदन पृष्ठभूमि में प्रवेश करता है तो आप ऐसा कर सकते हैं ("नहीं समाप्त") जो एक अलग घटना अनुप्रयोग है DidEnterBackground और इसके साथ आपको कुछ मल्टीथ्रेडिंग जीसीडी (ग्रैंड सेंट्रल प्रेषण) की आवश्यकता होगी।

तो कृपया इस लिंक

set a timer in ios

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