swift - 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!)
任何帮助将不胜感激。
解决方案
替换这个
let cell = tableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as! myCell
和
let cell = tableView.cellForRow(at:indexPath) as! myCell
因为tableView.dequeueReusableCell
应该返回另一个单元格以供使用而不是您单击的单元格,所以您应该只在内部使用它cellForRowAt
推荐阅读
- css - 确保无论文本长度如何,我的引导表中的两行始终并排
- laravel - Laravel 控制器中的 API 调用
- javascript - focus() 在 Chrome 中的 getUi().showSidebar html 中不起作用
- python - 当您在网页上做出一些选择时,如何找到正确的 URL?
- visual-studio-code - Vs 代码终端是空白的,我无法输入
- python - 如何在pyqt中运行另一个程序时使QProgressBar显示更新
- python-3.x - BeautifulSoup4 - 在批处理 url 的两个不同标签之间连接多个 html 元素
- ruby - Redis 信号量锁无法释放
- javascript - 我如何在 Javascript(最好)中编写 eclipse 命令脚本:Import/Check out Maven Projects from SCM using eclipse ease
- android - 通知未显示 android API 29