大家好,因为我是一个新手所以不知道如何从API获取图像和pdf文件以及如何在tableviewcell中显示,以便用户可以看到图像和pdf文件以及从那里下载它.我尝试了一些图像代码,但它不工作,没有一个单一的想法pdf.Please帮助.
图像代码:
我已经声明了一系列图像,如下所示:
var announimage : Array = [UIImage]()
以下是我的JSON数据的格式.
{ "Download_Details": [ { "school_id": 1,"class_id": "Pre - KG ","section": "A ","file_name": "427a3be0155b49db999cffb51f078f9c_431875732.pdf","title": "TeQ","message": "Hello Users","date": null },{ "school_id": 1,"file_name": "dce5ab53f45f4ec5b52894bc6286ed35_1376021.jpg","title": "Welcome","message": "Welcomes you.",{ "school_id": 1,"file_name": "9d3ff19bd54e48a087947227ee36c68c_13417773.png","title": "TEST","message": "TEST","date": null } ],}
以下是我尝试过的代码:
let responseString = try! JSONSerialization.jsonObject(with: data!,options: .allowFragments) as? NSDictionary let downarray = responseString?.value(forKey: "Download_Details") as? NSArray for down in downarray! { let dowdict = down as? NSDictionary let dmsgname = dowdict?.value(forKey: "message") self.announmessage.append(dmsgname as! String) let downimage = dowdict?.value(forKey: "file_name") self.announimage.append(downimage as! UIImage) } dispatchQueue.main.async { self.annountable.reloadData() }
UITableView数据源:
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell2 = tableView.dequeueReusableCell(withIdentifier: "cell1",for: indexPath) as! AnnounceCellTableViewCell cell2.announlabel.text = announmessage[indexPath.row] cell2.announdate.text = announcedates[indexPath.row] let image :UIImage = UIImage(data:announimage[indexPath.row] as! Data)! cell2.dataimage.image = image return cell2 }
解决方法
let imgurlStr:String = "https://dncache-mauganscorp.netdna-ssl.com/thumbseg/378/378006-bigthumbnail.jpg"; if let imgurL = URL.init(string: imgurlStr) { do { let imageData = try Data(contentsOf: imgurL as URL); let image = UIImage(data:imageData); print("here you will find your image:- \(String(describing: image)) "); } catch { print("Unable to load data: \(error)") } }
输出: –
here you will find your image:- Optional(<UIImage: 0x6080000bca40>,{450,338})
var prefixUrl = "http://apidomain.com/"; let imageUrlStr = dowdict?.value(forKey: "file_name") prefixUrl.append(imageUrlStr); print("full url \(prefixUrl)");
FOR PDF – 由于pdf不在图像视图中显示,因此您需要在webView中显示它.只需在webView for pdf中加载请求即可.
let webView = UIWebView.init(); let pdfUrlStr:String = "http://www.pdf995.com/samples/pdf.pdf"; let pdfUrl = URL.init(string: pdfUrlStr); let urlRequest = URLRequest.init(url: pdfUrl!,cachePolicy: URLRequest.CachePolicy.reloadIgnoringLocalAndRemoteCacheData,timeoutInterval: 30.0); webView.loadRequest(urlRequest);
原文地址:https://www.jb51.cc/js/157477.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。