我使用了以下代码,但对我没用。
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(markerView.bounds.size.width/10, markerView.bounds.size.height/4, markerView.bounds.size.width*4/5, markerView.bounds.size.height/1.5)];
NSString *strPath = [NSString stringWithFormat:@"%@",[[arrTemp valueForKey:@"image"] objectAtIndex:marker.accessibilityLabel.integerValue]];
NSLog(@"img path %@", strPath);
dispatch_async(dispatch_get_main_queue(), ^{
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:strPath]]];
imgView.image = img;
});
答案 0 :(得分:2)
您可以尝试以下代码。 它对我有用。
Vec<Token>
答案 1 :(得分:2)
在项目中添加SDWebImage
文件夹,然后选择以下选项。要将文件夹的副本添加到目标项目和创建组。
然后将标题调用为
#import "UIImageView+WebCache.h"
确保您要添加到要使用该库的所有目标。
Github处的文档:
将SDWebImage项目添加到项目中
或者您可以使用cocoa pods
作为建议的其他答案。
最后称为
[imgView sd_setImageWithURL:[NSURL URLWithString:strPath] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
答案 2 :(得分:0)
您可以尝试DispatchQueue.async(xcode 8.0 +):
let queue = DispatchQueue(label: "com.mydomain.queue3")
queue.async {
let imageURL: URL = URL(string: "https://www.brightedge.com/blog/wp-content/uploads/2014/08/Google-Secure-Search_SEL.jpg")!
guard let imageData = try? Data(contentsOf: imageURL) else {
return
}
DispatchQueue.main.async {
self.imageView.image = UIImage(data: imageData)
}
}
或将第一个DispatchQueue
替换为URLSession.dataTask
let imageURL: URL = URL(string: "https://www.brightedge.com/blog/wp-content/uploads/2014/08/Google-Secure-Search_SEL.jpg")!
(URLSession(configuration: URLSessionConfiguration.default)).dataTask(with: imageURL, completionHandler: { (imageData, response, error) in
if let data = imageData {
DispatchQueue.main.async {
self.imageView.image = UIImage(data: data)
}
}
}).resume()