iOS - 延迟向UITableView添加行的最佳方法?

时间:2016-04-08 13:07:54

标签: ios swift uitableview delay

我正在努力使iOS与游戏Lifeline

非常相似

游戏看起来好像只是一个表格视图,在延迟后插入了一行。

我设法插入这样的行

 for obj in array {
                    self.dialogue.append(obj)
                    self.tableView.beginUpdates()
                    self.tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: 0)], withRowAnimation: UITableViewRowAnimation.Fade)
                    self.tableView.endUpdates()
                    }}

*注意self.dialogue是我的表视图的数据源。

但是我不知道如何在添加新行之间添加延迟,例如

- >插入行 - >等待3秒 - >插入另一行

我怎么能像在游戏中一样做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以实现单独的方法或块来插入行,并在for循环中调用它并延迟。 e.g。

var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(1.0 * Double(NSEC_PER_SEC))) 

for obj in array {
  dispatch_after(dispatchTime, dispatch_get_main_queue(), { 
    self.dialogue.append(obj)
    self.tableView.beginUpdates()
    self.tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: 0)], withRowAnimation: UITableViewRowAnimation.Fade)
    self.tableView.endUpdates()
  })
}}