导入UIKit 进口Alamofire 导入SwiftyJSON
class Home:UIViewController,UITableViewDelegate,UITableViewDataSource {
var tableView: UITableView = UITableView()
var arrRes = [[String:AnyObject]]()
override func viewDidLoad() {
super.viewDidLoad()
tableView = UITableView(frame: UIScreen.main.bounds, style: UITableViewStyle.plain)
tableView.separatorStyle = UITableViewCellSeparatorStyle.none
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.view.addSubview(self.tableView)
// sort for popular songs
Alamofire.request("http://vocadb.net/api/songs/top-rated?filterBy=Popularity").responseJSON { (responseData) -> Void in
if((responseData.result.value) != nil) {
let swiftyJsonVar = JSON(responseData.result.value!)
if let resData = swiftyJsonVar[].arrayObject {
self.arrRes = resData as! [[String:AnyObject]]
}
if self.arrRes.count > 0 {
self.tableView.reloadData()
}
}
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "cell")
var dict = arrRes[indexPath.row]
cell.textLabel?.textColor = .white
cell.detailTextLabel?.textColor = .white
cell.textLabel?.text = dict["defaultName"] as? String // use default name for each song
cell.detailTextLabel?.text = dict["artistString"] as? String // use artist string and the second line of text
cell.imageView?.image = dict["coverPictureMime"] as? UIImage
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrRes.count
}
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
cell.contentView.backgroundColor = UIColor(red:0.16, green:0.16, blue:0.16, alpha:1.0)
}
}
好的,上面是我的代码。它现在显示的是UITableView,其中包含歌曲和艺术家的名字。我的目标是在单元格的左侧显示专辑封面。有关如何以编程方式执行此操作的任何想法?
我已经尝试创建了一个imageview并将其返回到单元格中但是图像甚至不会显示设置虚拟图像以查看是否解析是错误的。
答案 0 :(得分:0)
您需要先从dict参数" coverPictureMime"中的网址下载图片。然后将该图像放入cell.imageView?.image
。
以下链接将帮助您实现此目的:
Download image from URL