ในโพสต์นี้ เราจะเรียนรู้วิธีทำงานซ้ำหลังจากช่วงเวลาปกติ
ในตัวอย่างนี้ เราจะอัปเดตป้ายกำกับหลังจากช่วงเวลาหนึ่งซ้ำๆ
ใน iOS เราใช้ตัวจับเวลาเพื่อให้งานนี้สำเร็จ มาเริ่มกันเลย
ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "ตัวจับเวลา"
ขั้นตอนที่ 2 − เปิด Main.storyboard และเพิ่มป้ายกำกับตามที่แสดงด้านล่าง
ขั้นตอนที่ 3 - แนบ @IBOutlet หนึ่งรายการสำหรับป้ายกำกับด้านล่าง ตั้งชื่อว่า timerLabel
ขั้นตอนที่ 4 − เราจะแสดงวินาทีตั้งแต่เปิดตัวแอปบนฉลาก ดังนั้นให้ประกาศตัวแปรสองตัวใน view controller ดังนี้
var timeLaunched: Int = 0 var timer: Timer?
ขั้นตอนที่ 5 − เพิ่มฟังก์ชันที่อัปเดตป้ายกำกับ เราจะเรียกใช้ฟังก์ชันนี้ซ้ำๆ เป็นระยะๆ ในภายหลัง
@objc func updateLabel() { timerLabel.text = " Time Launched = \(timeLaunched) Seconds " timeLaunched += 1 }
อย่างที่คุณเห็นฟังก์ชันนี้จะเพิ่มเวลาที่เรียกใช้และแสดงบนฉลาก
ขั้นตอนที่ 6 - เริ่มต้นและเรียกตัวจับเวลา ใน viewDidLoad ของ ViewController เริ่มต้นตัวจับเวลาและเรียกใช้ฟังก์ชัน updateLabel ตามช่วงเวลาปกติ เรากำลังเรียกใช้ฟังก์ชันทุกๆ 1 วินาที คุณสามารถเรียกใช้ฟังก์ชันได้ตามความต้องการของคุณ
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. updateLabel() timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(ViewController.updateLabel)), userInfo: nil, repeats: true) }
อย่างที่คุณเห็น เราได้เริ่มต้นตัวจับเวลา และตั้งค่า 'ซ้ำ' เป็นจริง ซึ่งจะเรียกใช้ฟังก์ชัน updateLabel ทุกวินาที
เปิดแอป คุณจะเห็นป้ายกำกับอัปเดตทุกวินาที