随机时间斯威夫特

时间:2016-04-02 03:41:35

标签: iphone swift2

因此,当按下UIButton时,我想要弹出一个随机的4个图像,但我想在按下按钮后随机弹出一个图像。我正在使用Xcode和swift 2.非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

你根本不需要NSTimer(以及所有棘手的选择器)。借助matt的延迟功能(在stackowerflow中的某个地方,我懒得找到链接:-),它可以像

一样简单
import Foundation
import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}

func randomDelay(range: Range<UInt32>, completion: ()->()) {
    if let first = range.first,
        let last = range.last {
        let d = arc4random_uniform(last) + first
        print("now:     ",NSDate(),"delay:",d)
        delay(Double(d)) {
            completion()
        }
    }
}

let range:Range<UInt32> = 3..<10

// run this on button press
randomDelay(range) {
    // update your image here
    print("complete:", NSDate())
}

打印类似

的内容
now:      2016-04-02 07:33:24 +0000 delay: 9
complete: 2016-04-02 07:33:34 +0000

和另一个'按'

now:      2016-04-02 07:39:55 +0000 delay: 5
complete: 2016-04-02 07:40:00 +0000