दिलचस्प पोस्ट
सबसे ऊपर UIViewController प्राप्त करें Cassandra में ऑटो वृद्धि आईडी कैसे बनाएं जावा में अंतिम सरणी सी # नियतात्मक में स्थैतिक कक्षा आरंभीकरण का क्रम क्या है? गिट में पुरानी प्रतिबद्धता का टाइमस्टैम्प कैसे बदल सकता है? जानकारी के लिए एक वेबसाइट (या पेज) को कैसे स्कैन करें, और इसे मेरे कार्यक्रम में लाएं? JTextPane में विशिष्ट शब्दों का रंग कैसे बदल सकता है? Python में Xpath का उपयोग कैसे करें? त्रुटि: Android स्टूडियो में नाम 'डिफ़ॉल्ट' के साथ कॉन्फ़िगर नहीं मिला PHP के साथ एक निर्देशिका की पदानुक्रम प्राप्त करें क्या कारण होता है: "सूचना: अपरिष्कृत स्ट्रिंग ऑफ़सेट" दिखाई देने के लिए? जावा: माउसड्राग और एक ग्राफिकल इंटरफ़ेस में घूम रहा है एएसपी.नेट एमवीसी 4 कस्टम ऑथराइज एट्रिब्यूट – अनधिकृत उपयोगकर्ताओं को त्रुटि पेज पर दिशानिर्देश कैसे करें? उत्पादन में जावा जी 1 कचरा संग्रहण एचटीएमएल / जावास्क्रिप्ट एक क्लिक प्रिंट (कोई संवाद नहीं)

कैसे रोकें / चलायें NSTimer?

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

वेब के समाधान से एकत्रित समाधान "कैसे रोकें / चलायें NSTimer?"

इस चमक की कोशिश करो … मेरे लिए अच्छा काम किया

संपादित करें

ईमानदारी से मेरा वास्तविक कोड यह है:

-(IBAction)clicked:(id)sender { if ([startStop.titleLabel.text isEqualToString:@"Start"]) { [startStop setTitle:@"Pause" forState:UIControlStateNormal]; [startStop setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countUp) userInfo:nil repeats:YES]; timerDown = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDown) userInfo:nil repeats:YES]; } else if ([startStop.titleLabel.text isEqualToString:@"Pause"]) { [startStop setTitle:@"Resume" forState:UIControlStateNormal]; [startStop setTitleColor:[UIColor colorWithRed:0/255 green:0/255 blue:255/255 alpha:1.0] forState:UIControlStateNormal]; pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain]; previousFireDate = [[timer fireDate] retain]; [timer setFireDate:[NSDate distantFuture]]; } else if ([startStop.titleLabel.text isEqualToString:@"Resume"]) { [startStop setTitle:@"Pause" forState:UIControlStateNormal]; [startStop setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; float pauseTime = -1*[pauseStart timeIntervalSinceNow]; [timer setFireDate:[NSDate dateWithTimeInterval:pauseTime sinceDate:previousFireDate]]; [pauseStart release]; [previousFireDate release]; } } 

मैंने UIButton का उपयोग किया और क्लिक करते समय इस कोड का उपयोग किया।

इसे रखना याद रखें:

 NSDate *pauseStart, *previousFireDate; 

आपके .h फ़ाइल में

संपादित करें!

यहाँ countUp विधि है नीचे विधि भूल जाओ सेकंड, मिनट, घंटों में इन्ट्स हैं

 - (void)countUp { seconds += 1; if (seconds == 60) { seconds = 0; minutes++; if (minutes == 60) { minutes = 0; hours++; } } } 

तुम नहीं करते रोक के बजाय बस पुराने टाइमर को अमान्य करना और जारी करना और जब उपयोगकर्ता फिर से खेलता है, तो एक नया टाइमर बनाएं

refreshTimer कक्षा स्तर पर होना चाहिए। टाइमर को रोकने के लिए निम्न कोड का उपयोग करें:

 refreshTimer = [NSTimer scheduledTimerWithTimeInterval: refreshInSeconds target: self selector: @selector(refreshPage) userInfo: nil repeats: YES]; [refreshTimer invalidate]; refreshTimer = nil; 

शुरू करने के लिए आप फिर से लाइन 3 के रूप में टाइमर शेड्यूल कर सकते हैं

तर्क के साथ टाइमर शुरू करने के लिए निम्नलिखित कोड का उपयोग भी करें:

 timer = [NSTimer scheduledTimerWithTimeInterval:time target:self selector:@selector(callMyMethod:) userInfo:[NSDictionary dictionaryWithObjectsAndKeys:web1, @"web", baseURL, @"baseURL", option1, @"option", nil] repeats:NO]; 

और फिर उपयोग करें

 [timer invalidate]; 

टाइमर को रोकने के लिए

मुझे उम्मीद है कि यह कोड आपकी मदद करेगा

धन्यवाद।

NSTimer के लिए विराम के रूप में ऐसी कोई चीज नहीं है, आपको इसे रोकना और फिर से शुरू करना होगा।

[आपका टाइमर अमान्य]; // टाइमर बंद कर देगा जिसके बाद आप इसे फिर से शुरू कर सकते हैं

स्विफ्ट 2 के लिए अपडेट किया गया उत्तर

 import UIKit class ViewController: UIViewController { var myTimer = NSTimer() var time = 0 // global var @IBOutlet weak var counterLabel: UILabel! @IBAction func pauseTimer(sender: AnyObject) { myTimer.invalidate() } @IBAction func startTimer(sender: AnyObject) { myTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true) } func result() { time++ counterLabel.text = String(time) print(time) } override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }