Làm cách nào để đếm ngược với NSTimer
bằng Swift?Làm thế nào tôi có thể đếm ngược với NSTimer?
Trả lời
Câu hỏi 1:
@IBOutlet var countDownLabel: UILabel!
var count = 10
override func viewDidLoad() {
super.viewDidLoad()
var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
}
func update() {
if(count > 0) {
countDownLabel.text = String(count--)
}
}
Câu hỏi 2:
Bạn có thể làm cả hai. SpriteKit là SDK bạn sử dụng cho cảnh, chuyển động, v.v. Simple View Application là mẫu dự án. Họ không nên mâu thuẫn
Variable cho timer của bạn
var timer = 60
NSTimer với 1.0 như khoảng
var clock = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "countdown", userInfo: nil, repeats: true)
Ở đây bạn có thể làm giảm bộ đếm thời gian
func countdown() {
timer--
}
Nhờ quá :))))) (Y) –
nên Selector ("đếm ngược") – Khuong
@ khuong291: Cảm ơn, tôi đã chỉnh sửa câu trả lời. –
Trong Swift 3.0 này sẽ làm việc :
var counter = 30
override func viewDidLoad() {
super.viewDidLoad()
var _ = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true)
}
func updateCounter() {
//you code, this is an example
if counter > 0 {
print("\(counter) seconds to the end of the world")
counter -= 1
}
Hãy đếm ngược ứng dụng Xcode 8.1, Swift 3
import UIKit
import Foundation
class ViewController: UIViewController, UITextFieldDelegate {
var timerCount = 0
var timerRunning = false
@IBOutlet weak var timerLabel: UILabel! //ADD Label
@IBOutlet weak var textField: UITextField! //Add TextField /Enter any number to Countdown
override func viewDidLoad() {
super.viewDidLoad()
//Reset
timerLabel.text = ""
if timerCount == 0 {
timerRunning = false
}
}
//Figure out Count method
func Counting() {
if timerCount > 0 {
timerLabel.text = "\(timerCount)"
timerCount -= 1
} else {
timerLabel.text = "GO!"
}
}
//ADD Action Button
@IBAction func startButton(sender: UIButton) {
//Figure out timer
if timerRunning == false {
_ = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.Counting), userInfo: nil, repeats: true)
timerRunning = true
}
//unwrap textField and Display result
if let countebleNumber = Int(textField.text!) {
timerCount = countebleNumber
textField.text = "" //Clean Up TextField
} else {
timerCount = 3 //Defoult Number to Countdown if TextField is nil
textField.text = "" //Clean Up TextField
}
}
//Dismiss keyboard
func keyboardDismiss() {
textField.resignFirstResponder()
}
//ADD Gesture Recignizer to Dismiss keyboard then view tapped
@IBAction func viewTapped(_ sender: AnyObject) {
keyboardDismiss()
}
//Dismiss keyboard using Return Key (Done) Button
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
keyboardDismiss()
return true
}
}
Swift 3
private let NUMBER_COUNT_DOWN = 3
var countDownLabel = UILabel()
var countDown = NUMBER_COUNT_DOWN
var timer:Timer?
private func countDown(time: Double)
{
countDownLabel.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
countDownLabel.font = UIFont.systemFont(ofSize: 300)
countDownLabel.textColor = .black
countDownLabel.center = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height/2)
countDownLabel.textAlignment = .center
self.view.addSubview(countDownLabel)
view.bringSubview(toFront: countDownLabel)
timer = Timer.scheduledTimer(timeInterval: time, target: self, selector: #selector(updateCountDown), userInfo: nil, repeats: true)
}
func updateCountDown() {
if(countDown > 0) {
countDownLabel.text = String(countDown)
countDown = countDown - 1
} else {
removeCountDownLable()
}
}
private func removeCountDownLable() {
countDown = NUMBER_COUNT_DOWN
countDownLabel.text = ""
countDownLabel.removeFromSuperview()
timer?.invalidate()
timer = nil
}
- 1. Đồng hồ đếm ngược
- 2. Làm thế nào tôi có thể hiển thị một tin nhắn đếm ngược mỗi giây với AngularJS?
- 3. Làm thế nào để đếm ngược trong vòng lặp?
- 4. nhiều bộ đếm thời gian đếm ngược bên trong uitableview
- 5. C# Đếm ngược đơn giản - Tôi đang làm gì sai?
- 6. Làm thế nào để ngừng đếm ngược javascript của tôi bằng cách nhấp vào một nút?
- 7. Làm thế nào để tạo đồng hồ đếm ngược với RxJS Observables?
- 8. Làm thế nào để kích hoạt NSTimer ngay lập tức?
- 9. Làm thế nào để thiết lập lại NSTimer? swift code
- 10. Làm cách nào để tôi có thể cho phép CountDownTimer đặt lại sau khi đếm ngược kết thúc?
- 11. Làm thế nào tôi có thể lặp qua một phạm vi đảo ngược với một bước cụ thể trong Ruby?
- 12. Android đếm ngược
- 13. Tôi có thể sử dụng nginx 1.9.5 như một proxy ngược với gRPC như thế nào?
- 14. Trong Kotlin, tôi có thể tạo một phạm vi đếm ngược?
- 15. Làm thế nào tôi có thể truy cập Bộ đếm CPU Intel
- 16. Làm thế nào tôi có thể trả lại số đếm từ truy vấn
- 17. Làm thế nào tôi có thể đảo ngược thiết kế đồ thị DirectShow?
- 18. Android ProgressBar đếm ngược
- 19. Làm thế nào tôi có thể đếm vòng trong mvc3 tại @foreach
- 20. làm thế nào tôi có thể đếm AKKA kết nối mở hiện
- 21. Góc 2 ống đếm ngược
- 22. Làm cách nào tôi có thể đếm số phần tử khớp với vị từ bằng Luồng?
- 23. Làm cách nào để tạo bộ đếm thời gian đếm ngược cho cocos2d?
- 24. Tôi có thể tạm dừng một NSTimer theo cách lập trình bằng cách nào?
- 25. Thực hiện Đồng hồ đếm ngược trong Mục tiêu-c?
- 26. Làm thế nào tôi có thể đảo ngược kỹ sư một chương trình Perl đã được biên dịch với perlcc?
- 27. Đồng hồ đếm ngược Javascript
- 28. Làm thế nào để làm điều ngược lại với diff?
- 29. đếm ngược Javascript cho thời gian và ngày cụ thể
- 30. Làm thế nào tôi có thể làm cho các yếu tố của mình làm mờ dần số đếm cao hơn?
Cảm ơn rất nhiều :) –
Sử dụng #selector (cập nhật) trong Swift 2.2 –