Ios 在单元格上单击显示特定登录id的图像
在比较包含用户详细信息的表的ID后,我需要在我的下一个视图控制器中打印图像。在比较ID后,我成功获取了名称,但相应的图像无法获取 如果用户发布了任何内容,那么我将获得特定发布作业的名称,现在我想要的是来自各个用户的图像(用户在注册时上传的图像)(标识发布作业是通过哪个用户发布的) 下面是我的代码:Ios 在单元格上单击显示特定登录id的图像,ios,swift3,swift4,Ios,Swift3,Swift4,在比较包含用户详细信息的表的ID后,我需要在我的下一个视图控制器中打印图像。在比较ID后,我成功获取了名称,但相应的图像无法获取 如果用户发布了任何内容,那么我将获得特定发布作业的名称,现在我想要的是来自各个用户的图像(用户在注册时上传的图像)(标识发布作业是通过哪个用户发布的) 下面是我的代码: func getJOBData() { let jobUrl = URL(string: "http://172.16.1.22/Get-Job-API/get-jobs/
func getJOBData()
{
let jobUrl = URL(string: "http://172.16.1.22/Get-Job-API/get-jobs/")
URLSession.shared.dataTask(with: jobUrl!) { (data, response, error) in
do
{
if error == nil
{
self.jobArray = try JSONDecoder().decode([JobData].self, from: data!)
for mainJobArr in self.jobArray
{
DispatchQueue.main.async {
self.jobPostTblView.reloadData()
}
}
print("Job Data****\(self.jobArray)")
}
}
catch
{
// print("my data=\(self.mainCellData)")
print("Error in get JSON Data\(error)")
}
}.resume()
}
行数部分
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return jobFilteredArray.count
}
cellForRowAtIndexPath方法
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = Bundle.main.loadNibNamed("JobTableViewCell", owner: self, options: nil)?.first as! JobTableViewCell
let data = jobArray[indexPath.row]
cell.jobTitle.text = data.job_desig
cell.expDetails.text = data.job_exp_to
cell.locationDetails.text = data.job_location
cell.dateDetails.text = data.job_skills
cell.companyName.text = companyArray.first { $0.company_id == data.company_id }?.company_name
return cell
}
didSelectRowAtIndexPath
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
let selectedCell:UITableViewCell = tableView.cellForRow(at: indexPath)!
selectedCell.contentView.backgroundColor = UIColor.white
let rows = indexPath.row
print("Rows=\(rows)")
let jobDetail = WorkerJobDetailsViewController(nibName: "WorkerJobDetailsViewController", bundle: nil)
let jdata = jobFilteredArray[indexPath.row]
jobDetail.gender = jobArray[indexPath.row].job_emp_gender
jobDetail.location = jobArray[indexPath.row].job_location
jobDetail.companyName = (companyArray.first { $0.company_id == jdata.company_id }?.company_name)!
jobDetail.profile = jobImgPath
jobImgPath = (companyArray.first { $0.company_id == jdata.company_id }?.company_logo)!
jobDetail.skills = jobArray[indexPath.row].job_skills
jobDetail.descriptionValue = jobArray[indexPath.row].job_desc
jobDetail.jobDesignation = jobArray[indexPath.row].job_desig
self.present(jobDetail, animated: true, completion: nil)
}
任何人都可以帮我为发布作业的各个用户获取图像吗???只需使用一个pod-like,并获取带有您正在映射的url的链接。您将面临的问题是,该链接是本地ip,无法从远程网络工作,但如果将来在json上更改链接,您就可以了
没有吊舱,你可以做到这一点
func getDataFromUrl(url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url) { data, response, error in
completion(data, response, error)
}.resume()
}
func downloadImage(url: URL) {
print("Download Started")
getDataFromUrl(url: url) { data, response, error in
guard let data = data, error == nil else { return }
print(response?.suggestedFilename ?? url.lastPathComponent)
print("Download Finished")
DispatchQueue.main.async() {
self.imageView.image = UIImage(data: data)
}
}
}
@Anbu.karthik是的,谢谢你指出我的错误,你能帮我改进一下吗?我必须在同一个文件中编写这两个函数并在viewDidLoad()中调用它们吗?你必须编写这两个函数,并且在你想加载图片时调用它们,如果你想在开始时加载它的话,它将异步运行,因此可能会延迟获取pic,但它会,如果您想通知用户正在下载图片,您可以显示活动指示器,但从现在开始,您需要做的就是在需要时调用该函数我应该在这里写什么?downloadImage(url:(?))我已经根据我的imageView对其进行了更改,如self.profileInage.image=UIImage(数据:数据)现在我对重写func viewDidLoad()感到困惑{super.viewDidLoad(downloadImage(url:)在这个方法中我应该作为url传递什么??