Swift:每次X次闪烁/闪烁标签

时间:2015-04-16 19:15:34

标签: ios swift

我有四个标签。 我希望在X时间后消失label1和label2,并使label3和label4出现。

所以我使用matt's function delay,我有两个问题:

  • 如何制作延迟循环? (我尝试了一些东西,但它们没有用。)
  • 如何让动画更流畅? (请查看视频。)

以下是我的代码的一部分:

    func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
        // by matt on https://stackoverflow.com/questions/24034544/dispatch-after-gcd-in-swift/24318861#24318861
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    // [...]
    // After 4.2sec hide lbl 1/2, show lbl3/4, after 3.7sec hide lbl3/4, show lbl 1/2, etc.

    delay(4.2) {
        cell.label1!.hidden = true
        cell.label2!.hidden = true
        cell.label3!.hidden = false
        cell.label4!.hidden = false

    }
    delay(7.9) {
        cell.label3!.hidden = true
        cell.label4!.hidden = true
        cell.label1!.hidden = false
        cell.label2!.hidden = false
    }

    delay(12.1) {
        cell.label1!.hidden = true
        cell.label2!.hidden = true
        cell.label3!.hidden = false
        cell.label4!.hidden = false

    }
    delay(15.8) {
        cell.label3!.hidden = true
        cell.label4!.hidden = true
        cell.label1!.hidden = false
        cell.label2!.hidden = false
    }
    // [...] Copy/paste and copy/paste since I can't create a loop
    delay(56.6) {
        cell.label1!.hidden = true
        cell.label2!.hidden = true
        cell.label3!.hidden = false
        cell.label4!.hidden = false

    }
    delay(60.3) {
        cell.label3!.hidden = true
        cell.label4!.hidden = true
        cell.label1!.hidden = false
        cell.label2!.hidden = false
    }
           return cell!
}

此外,请看一下这段视频:https://youtu.be/aomYcqq7UX0 有些标签不会同时出现,有些标签会消失几秒钟:它非常迟钝。

0 个答案:

没有答案
相关问题