滚动图像时UITableView滞后

时间:2015-01-09 08:16:42

标签: ios xcode uitableview swift

我创建了一个UITableView来显示来自Instagram的特定照片的Feed。我做了一个自定义tableViewCell来显示图像,标题包含用户名。一切都显示正确,但当我滚动它时相当滞后。 我已经阅读了有关heightForRowAtIndexPath的其他帖子,而不是设置tableView.rowHeight,并且已经正确完成,这减少了一些延迟。

   override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    //Screen Width & Height
    let screenSize: CGRect = UIScreen.mainScreen().bounds; let screenWidth = screenSize.width;
    let screenHeight = screenSize.height;


    var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("feedCell") as UITableViewCell
    let url = NSURL(string: mediaArray[indexPath.section])
    let data = NSData(contentsOfURL: url!) 

    var cellImageName = UIImage(data: data!)
    var cellImage = cellImageName
    var cellImageView = UIImageView(image: cellImage)


    cellImageView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: screenWidth)
    cell.addSubview(cellImageView)


    //cell.imageView?.image = UIImage(data: data!)
    return cell
}

有谁知道如何解决问题?感谢

编辑:我在后台线程上下载了let data = NSData(contentsOfURL: url!),其余的在主线程上。

        let url = NSURL(string: mediaArray[indexPath.section])
    let priority = DISPATCH_QUEUE_PRIORITY_HIGH
    dispatch_async(dispatch_get_global_queue(priority, 0)) {
        //IMAGE
        let data = NSData(contentsOfURL: url!)
        var cellImage = UIImage(data: data!)
        var cellImageView = UIImageView(image: nil)
        dispatch_async(dispatch_get_main_queue()) {

            if (cell.viewWithTag(1) == nil) {
                cellImageView.tag = 1
                var cellImage = UIImage(data: data!)
                var cellImageView = UIImageView(image: cellImage)
                cellImageView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: screenWidth)
                cell.addSubview(cellImageView)
            }
        }

我还有一个问题,即Feed重新使用相同的单元格。有什么想法吗?

0 个答案:

没有答案