首页 > 解决方案 > Swift - 通过选择行放大自定义表格行图像

问题描述

我有一个包含图像的行的 UITableView - 我想让选定的行图像更大,我已经研究过并且有这个代码,但是,它返回我的默认单元格图像,在自定义单元格中定义,而不是在选定的图像表行。

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as! myCell
 let items = self.itemsarray[indexPath.row]
    self.imageTapped(image: cell.itemsImageView.image!)
}

  func imageTapped(image:UIImage) {
    let newImageView = UIImageView(image: image)
    newImageView.image = image
    newImageView.frame = UIScreen.main.bounds
    newImageView.backgroundColor = .black
    newImageView.contentMode = .scaleAspectFit
    newImageView.isUserInteractionEnabled = true

    let tap = UITapGestureRecognizer(target: self, action: #selector(ItemViewController.dismissFullscreenImage(_:)))
    newImageView.addGestureRecognizer(tap)


    self.view.addSubview(newImageView)
    self.navigationController?.isNavigationBarHidden = true
    self.tabBarController?.tabBar.isHidden = true
}

这是问题线self.imageTapped(image: cell.itemsImageView.image!)任何帮助将不胜感激。

标签: swiftuitableview

解决方案


替换这个

let cell = tableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as! myCell

let cell = tableView.cellForRow(at:indexPath) as! myCell

因为tableView.dequeueReusableCell应该返回另一个单元格以供使用而不是您单击的单元格,所以您应该只在内部使用它cellForRowAt


推荐阅读