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