Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIImageTableViewCell中的图像获胜';除非我踢它,否则它不会出现(单击、拖动或任何移动)_Ios_Uitableview_Swift_Uiimageview - Fatal编程技术网

Ios UIImageTableViewCell中的图像获胜';除非我踢它,否则它不会出现(单击、拖动或任何移动)

Ios UIImageTableViewCell中的图像获胜';除非我踢它,否则它不会出现(单击、拖动或任何移动),ios,uitableview,swift,uiimageview,Ios,Uitableview,Swift,Uiimageview,我在做cs193p斯坦福课程的作业4,Smashtag。 该程序只是从Twitter获取信息并将其显示在TableView上。我使用ImageViewCell获取URL,并使用NSData(URL)中的UIImage显示。微调器指示器工作正常,但当它停止动画时,它确实会消失,但图像不会显示,除非我触摸屏幕或拖动它给它一点刺激。踢完之后,图像会立即出现。为了保持主线程的流畅性,我必须使用异步来调度它,以避免阻塞主线程,这是原因吗 import UIKit class ImageTableView

我在做cs193p斯坦福课程的作业4,Smashtag。 该程序只是从Twitter获取信息并将其显示在TableView上。我使用ImageViewCell获取URL,并使用NSData(URL)中的UIImage显示。微调器指示器工作正常,但当它停止动画时,它确实会消失,但图像不会显示,除非我触摸屏幕或拖动它给它一点刺激。踢完之后,图像会立即出现。为了保持主线程的流畅性,我必须使用异步来调度它,以避免阻塞主线程,这是原因吗

import UIKit

class ImageTableViewCell: UITableViewCell {

@IBOutlet weak var imageLabel: UIImageView! {
    didSet {
        if photo != nil {
            imageLabel?.image = photo
        }
    }
}

var photoURL: NSURL? {
    didSet{
        spinner.startAnimating()
        if let url = photoURL {
            dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_USER_INITIATED.value), 0)) {
                let data = NSData(contentsOfURL: url)
                dispatch_async(dispatch_get_main_queue()) {
                    self.spinner.stopAnimating()
                    if data != nil && url == self.photoURL {
                        self.photo = UIImage(data: data!)
                    }
                }
            }
        }
    }
}

var photo: UIImage?{
    didSet{
        if photo != nil {
           imageLabel.image = photo
        }
    }
}

@IBOutlet weak var spinner: UIActivityIndicatorView!
}


这让我很困惑。。。。谢谢你的帮助

通常,当您不在主队列中时,将图像分配给图像视图时会发生这种情况。然而,这不是你在这里要做的。但是这些迹象确实指出了一些并发性问题。thx获取信息,但是我应该怎么做才能解决它呢