如何让我的表格视图在Swift中不那么迟钝?

时间:2015-08-27 02:37:06

标签: ios swift uitableview

我的目标是在表格视图中为每一行显示一个独特的图像和标签。这是我目前所处的位置:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath )-> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! DailyBarCellViewTableViewCell

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0)) {
            let data = DailyBarCellViewTableViewCell.Static.data
        dispatch_async(dispatch_get_main_queue()) {
            cell.barName?.text = data.namesArray[indexPath.row]
        }
    }

  return cell
} 

CellDataDisplayInformation的内容:

struct CellDataDisplayInformation {
    var namesArray : [String?] = []
    var pictureArray : [UIImage?] = []

    init(){
        for index in 0...21 {
            var data = BarDetails(index: index)
            if data.barName != nil && data.barImage != nil {

                namesArray.append(data.barName!)
                pictureArray.append(data.barImage!)


            }
        }

    }

  }

data = CellDataDisplayInformation()保持[Strings?]和[UIImages?]的数组显示在每个相应的单元格中。使用此方法,UI最初加载每个单元格中的所有正确信息。然而,当我向下滚动到看不见的单元格时,每个单元格中的标签会随机播放2秒钟,然后移动到正确的位置。

如果我不使用"发送"而且只是这样做:

 let data = CellDataDisplayInformation()
 cell.barName?.text = data.namesArray[indexPath.row]

每个单元格的所有标签保持不变并且不会随机播放,但是当我滚动每个新单元格时,视图会滞后。

总之,在表格单元格中显示数据时,如何避免混乱和滞后?

My DailyBarCellViewTableViewCell类:

  class DailyBarCellViewTableViewCell: UITableViewCell {

// MARK: Properties

    struct Static  {
    static var data = CellDataDisplayInformation()
    }

@IBOutlet weak var barName: UILabel!


override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    self.barName.text = nil
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

override func prepareForReuse() {
    self.barName.text = nil
    super.prepareForReuse()
  }

}

0 个答案:

没有答案