ครั้งนี้เปิดหัวเรื่องมาก็ งง ในตัวเองอยู่นิดๆ ก็แค่อยากเล่นกับเวลาดูบ้าง แค่นั้นเองค่ะ พอคิดแบบนั้นก็หาๆๆๆ ทำอะไรดี ทำตัวจับเวลาดีกว่า แบบเดินหน้านะ ไม่ถอยหลัง (ไม่ชอบเดินถอยหลังง่ะ ชอบไปข้างหน้ามากกว่า อิอิ😚)
กำหนดโจทย์ที่จะทำหน่อยดีกว่า เราจะทำตัวนับเวลาที่มีปุ่ม Start สำหรับเริ่มจับเวลา, ปุ่ม Pause สำหรับหยุดเวลาชั่วขณะ และปุ่ม Stop สำหรับหยุดเวลาพร้อม Clear เวลากลับไป ณ จุดเริ่มต้นที่ศูนย์
ตัวอย่าง (หน้าจอไม่สวย เน้นอยากให้ทำเป็นค่ะ อิอิ)
กำหนดโจทย์ที่จะทำหน่อยดีกว่า เราจะทำตัวนับเวลาที่มีปุ่ม Start สำหรับเริ่มจับเวลา, ปุ่ม Pause สำหรับหยุดเวลาชั่วขณะ และปุ่ม Stop สำหรับหยุดเวลาพร้อม Clear เวลากลับไป ณ จุดเริ่มต้นที่ศูนย์
ตัวอย่าง (หน้าจอไม่สวย เน้นอยากให้ทำเป็นค่ะ อิอิ)
![]() |
เริ่มต้นแอป |
![]() |
ระหว่างนับเวลา |
มาเริ่มดูวิธีการสร้างดีกว่ากันเลยดีกว่าค่ะ ก็เปิด Project ใหม่สักอันหนึ่ง แล้วในหน้า Main.storyboard เราจะวาง UILabel และ UIButton สำหรับเป็นปุ่ม Start , Pause และ Stop ลองจากการทำงานของปุ่ม Start กับ Pause กันก่อนนะคะ โดยเราจะประกาศ IBOutlet ให้กับ UILabel และประกาศ IBAction ให้กับปุ่ม Start กับปุ่ม Pause
จากนั้นการทำงานของ startAction คือ เราจะให้ Timer ทำงานด้วยคำสั่ง
ซึ่ง ตัวแปร timer เราจะประกาศไว้ก่อนเข้า function startAction โดยจะประกาศว่า
พร้อมกับประกาศเพิ่มให้ส่วนของตัวแปรเพื่อนับ Millisecond และ Second ด้วย
ถัดมาที่คำสั่ง #selector นั้นมีการเรียก function updateCounter โดยเราจะต้องสร้างขึ้นมาซึ่งการทำงานเป็นดังนี้
สำหรับคำสั่ง String(format: "%02d:%02d",cntSec,cntMS) เป็นการแสดงเวลาใน format ตามที่เราต้องการบน label
ถ้าลอง Run ดูเมื่อกดปุ่ม Start เราจะได้การทำงานคือ เวลาที่แสดงบน Label จะทำงานไปเรื่อยๆ คราวนี้เราต้องการหยุดการทำงานชั่วคราวหรือ Pause เมื่อผู้ใช้งานกดปุ่ม Pasue จะมีการทำงานเพียงแค่สั่งให้หยุดเวลา ดังนั้นคำสั่งจะมีเพียงคำสั่งเดียวคือ
เพิ่มคำสั่งลงไปแล้ว ลอง Run ดู กด Start และ Pause ก็จะพบว่า แอปพลิเคชันสามารถทำงานได้แล้ว ดังนั้นสุดท้าย เหลือการทำงานของปุ่ม Stop เราประกาศ IBAction ให้ปุ่มได้เลยค่ะ แล้วใส่คำสั่ง หยุดเวลา พร้อมกับกำหนดเวลาทั้ง cntMS = 0 และ cntSec = 0 ดังนี้
เพียงเท่านี้ทดลอง Run แอปพลิเคชันดูเราก็จะได้การทำงานของตัวจับเวลาแล้วค่ะ แต่ทั้งนี้ทั้งนั้นก็ขึ้นอยู่จะนำไปประยุกต์หรือเอาไปเล่นยังไงก็สุดแต่ แต่ละคนนะคะ😙😙😙
Comments
Post a Comment