Hur man skapar en enkel Timer applikation för iOS (4 / 5 steg)
Steg 4: Skriva koden
Obs: I det här steget tar vi en titt på att skriva själva koden som kommer att ställa in och köra timern.
4a. öppna filen ViewController.h på den högra sidan av fönstret Xcode och Lägg till följande rader med kod efter ViewController: UIViewController avsnitt:
(nonatomic, behålla) IBOutlet UIDatePicker * datePicker;
(nonatomic, behålla) IBOutlet UIButton * startStopButton;
(nonatomic, behålla) IBOutlet UIButton * pauseButton;
(nonatomic, behålla) IBOutlet UILabel * timeLabel;
Obs: Här koden ställer in de försäljningsställen som kommer att ansluta till våra objekt i användargränssnittet och tillåta vår kod att interagera med vår gränssnitt.
4b. öppna filen Main.storyboard och högerklicka på där det står "View Controller" på vänster sida under "Visa Controller scenen".
4 C. klicka och dra cirkeln bredvid "datePicker" till där det står "UIDatePicker". Gör samma sak för motsvarande pauseButton och startStopButton.
Obs: För objektet timeLabel, kommer vi att dra cirkeln till namnet där det står ' 00:00 ', som visas i ovanstående bilder.
4 D. Klicka på Överlappande cirklar i det övre högra hörnet av fönstret Xcode att börja skapa metoder för Start/stopp knappar och pausa/återuppta knappar.
Obs: Vår ViewController.h fil ska öppnas. Om det inte öppna filen ViewController.h, se bilderna ovan att välja ViewController.h.
4e. håll ner kontrolltangenten och klicka och dra från Start-knappen på varje område mellan ViewController: UIViewController och taggar. Ändra inställningen från utlopp till handling och namn denna metod startStopButton.
Obs: du kan ge dessa metoder några namn. Om du ger metoden ett annat namn, var noga med att anteckna det namnet, som vi kommer att behöva referera till den senare i det här projektet.
4f. Följ samma steg för våra pausknappen. Namnet på metoden pauseTimer.
Obs: Som med våra Start/Stop-knappen kan du ge metoden vilket namn du vill ha, men anteckna metodnamnet för senare användning.
4 G. Ersätt där det står ViewController med följande kod:
ViewController < br >
{
BOOL isTimerRunning;
BOOL isPaused;
int timmar;
int minuter;
int sekunder.
int secondsCount;
NSTimer * timer;
}
Obs: Denna kod kommer att skapa variabler som vi kommer att använda i hela denna ansökan.
4 H. tillägga den följande linjen av koden nedan där det står [super viewDidLoad]:
isTimerRunning = nej; < br > isPaused = nej;
pauseButton.enabled = nej;
Obs: Denna kod kommer att ställa vår ursprungliga värden för våra booleska värden.
4i. Skriv följande kod för metoden startStopButton nedan metoden didReceiveMemoryWarning:
-(IBAction) startStopButton: (id) avsändaren {< br >
NSTimeInterval längd = datePicker.countDownDuration;
sekunder = 0;
timmar = (int)(duration/3600.0f);
minuter = ((int) varaktighet - (timmar * 3600)) / 60;
secondsCount = ((hours * 3600) + (minuter * 60));
timeLabel.text = [NSString stringWithFormat: timmar, minuter, sekunder];
om (isTimerRunning == Ja) {
timeLabel.alpha = 0;
[startStopButton setTitle: forState:UIControlStateNormal];
[pauseButton setTitle: forState:UIControlStateNormal];
pauseButton.enabled = nej;
[timer ogiltigförklara];
timer = noll;
} annat {
timeLabel.alpha = 1;
[startStopButton setTitle: forState:UIControlStateNormal];
pauseButton.enabled = Ja;
om (timer == nil) {
timer = [NSTimer scheduledTimerWithTimeInterval:1.0
mål: self
väljare:
userInfo:nil
repetitioner: Ja];
}
}
isTimerRunning =! isTimerRunning;
}
4j. Skriv följande kod nedan metoden startStopButton. Detta kommer att vara den metod som uppdaterar våra timer:
-(void) updateTimer {< br >
secondsCount--;
timmar = secondsCount/3600;
minuter = secondsCount/60.
sekunder = secondsCount - (minuter * 60);
timeLabel.text = [NSString stringWithFormat: timmar, minuter, sekunder];
om (secondsCount < = 0) {
[timer ogiltigförklara];
timer = noll;
timeLabel.alpha = 0;
[startStopButton setTitle: forState:UIControlStateNormal];
pauseButton.enabled = nej;
}
}
4 K. skriver följande kod för metoden pauseTimer:
-(IBAction) pauseTimer: (id) avsändaren {< br >
om (isPaused == nr) {
[timer ogiltigförklara];
timer = noll;
[pauseButton setTitle: forState:UIControlStateNormal];
} annat {
om (timer) {
[timer ogiltigförklara];
timer = noll;
}
timer = [NSTimer scheduledTimerWithTimeInterval:1.0
mål: self
väljare:
userInfo:nil
repetitioner: Ja];
[pauseButton setTitle: forState:UIControlStateNormal];
}
isPaused =! isPaused;
}
Obs: Denna metod kommer att koden att båda pausar våra timer när det körs, och återupptar timern när det är pausad.