2015-04-20 41 views
6

Tôi đang làm việc trên một trò chơi đố đơn giản và tôi muốn thêm một chút chậm trễ vào trò chơi, bây giờ khi tôi chọn câu trả lời trò chơi ngay lập tức cho câu trả lời tiếp theo bây giờ tôi muốn thay đổi màu của nút trong 0,1 giây và sau đó tải câu hỏi tiếp theoXcode Swift Ios App: Thêm chậm trễ

Tôi đã thử chức năng ngủ nhưng chỉ thêm độ trễ mà không thay đổi màu và tôi không thể chọn khoảng thời gian nhỏ hơn một giây vì nó chấp nhận số nguyên làm giá trị

đây là mã

sender.backgroundColor = UIColor.greenColor() 
sleep(1) 
sender.backgroundColor = UIColor.whiteColor() 

những gì tôi phải đặt thay vì ngủ để có được những gì tôi muốn?

nhờ

Trả lời

1

Bạn có thể sử dụng NSTimer cho rằng, trước hết bạn thực hiện NSTimer và bạn thêm thời gian thời gian 1.0 giây hoặc những gì bao giờ muốn sau đó, vượt qua thời gian NSTimer gọi chức năng của nó và bạn thay đổi câu hỏi khác

+0

tôi đã sử dụng bộ hẹn giờ, tôi đã thêm một số khác để thay đổi màu và nó hoạt động, cảm ơn bạn – GioB

0

Tôi nghĩ bạn nên thử NSTimer hoặc dispatch_after để làm những việc như vậy: (Các NSTimer có thể không quá thuận tiện vì nó cần một phương pháp học sử dụng như gọi lại selector)

sender.backgroundColor = UIColor.greenColor() 
dispatch_after(#your time#, 
    dispatch_get_main_queue()){ 
    sender.backgroundColor = UIColor.whiteColor() 
    #load your new question logic# 
} 

PS : Phương thức performSelector: delay: không có sẵn trong Swift.

4

Nếu bạn chỉ cần một chức năng ngủ, chỉ cần sử dụng

NSThread.sleepForTimeInterval(1) 
+0

tôi đã thử đặt dòng này giữa hai hướng dẫn thay đổi màu, nó thêm độ trễ nhưng không đổi màu – GioB

+0

Muốn để làm cho nó rõ ràng rằng điều này ngăn chặn các chủ đề. Cũng như 'sleep()'. Điều này không giải quyết được vấn đề của GioB. – Andrej

2

sử dụng usleep mà phải mất một int trong micro giây. (tức là 1.000.000 micro giây tương đương với 1 giây) Vì vậy, đối với 0.1s sử dụng:

 // Sleep for 0.1s 
     usleep(100000) 

Đề nghị sử dụng trong chủ đề nền. Bạn chắc chắn không muốn làm điều này trên Chủ đề giao diện người dùng chính!

Các vấn đề liên quan