使用此代码下载图像。但图像不会出现在显示屏上。
<service android:name=".ChildEventListener "/>
UPD
我在我的xcode项目中更新了我的代码,但它也不起作用...为什么代码在我的Xcode项目中也不起作用?
NSURL *url = [NSURL URLWithString:
@"http://upload.wikimedia.org/wikipedia/commons/7/7f/Williams_River-27527.jpg"];
NSURLSessionDownloadTask *downloadPhotoTask = [[NSURLSession sharedSession]
downloadTaskWithURL:url completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
_downloadedImage = [UIImage imageWithData:
[NSData dataWithContentsOfURL:location]];
}];
// 4
[downloadPhotoTask resume];
_downloadedImage = [UIImage imageNamed:@"Williams_River-27527.jpg"];
[_book3 setBackgroundImage: _downloadedImage forState:UIControlStateNormal];
[_scroller addSubview:_book3];
为什么代码在我的Xcode项目中也不起作用?
答案 0 :(得分:1)
如果你希望这个代码起作用(不确定它会不会),那么你需要运行这个过程中的步骤:
//1
NSURL *url = [NSURL URLWithString:
@"http://upload.wikimedia.org/wikipedia/commons/7/7f/Williams_River-27527.jpg"];
// 2
NSURLSessionDownloadTask *downloadPhotoTask = [[NSURLSession sharedSession]
downloadTaskWithURL:url completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
// 3
_downloadedImage = [UIImage imageWithData:
[NSData dataWithContentsOfURL:location]];
//5
dispatch_async(dispatch_get_main_queue(), ^{
[_book3 setBackgroundImage: _downloadedImage forState:UIControlStateNormal];
[_scroller addSubview:_book3];
});
}];
// 4
[downloadPhotoTask resume];
答案 1 :(得分:0)
您可以通过从图片集中加载来创建图片的第一个实例:_downloadedImage = [UIImage imageNamed:@"Williams_River-27527.jpg"];
(希望有一个)
从您的网址下载图片后,您可以使用下载的内容创建一个第二个图片实例。但您的按钮仍会链接到第一个实例(强引用)。该按钮根本不知道新图像。
因此,如果您想要更改显示的图像,则必须在将其分配给_downloadedImage后再直接设置它:[_book3 setBackgroundImage: _downloadedImage forState:UIControlStateNormal];
也许你需要在那之后刷新ui。
答案 2 :(得分:0)
这是Swift的答案
let url = URL.init(string: "https:yourUrl.com") as! URL
URLSession.shared.dataTask(with: url) { (data, response, error) in
if let error = error {
print("Error needs to be handled")
return
}
let image = UIImage.init(data: data!)
DispatchQueue.main.async {
self.yourImageView.image = image
}
}.resume()
答案 3 :(得分:0)
Xamarin.iOS的简单答案:
var url = new NSUrl("https:yourUrl.com");
var task = await NSUrlSession.SharedSession.CreateDataTaskAsync(url);
var image = UIImage.LoadFromData(task.Data);
yourImageView.Image = image;