ios - 点击 Swift 时全屏显示 tableviewcell 中的图像

标签 ios swift

我希望在 uigesturerecognizer 的提示下点击我的表格 View 单元格内的图像时全屏显示。

问题是我的 didSelectRowAt 函数无法识别 postedimage 标识符。

Use of unresolved identifier 'postedImage'

我该如何解决这个问题?

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

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

    imageFiles[indexPath.row].getDataInBackground { (data, error) in

        if let imageData = data {

            if let downloadedImage = UIImage(data: imageData) {

                cell.postedImage.image = downloadedImage

            }

        }

    }

    cell.postedImage.image = UIImage(named: "test.png")

    return cell
}

func removeImage() {

    let imageView = (self.view.viewWithTag(100)! as! UIImageView)
    imageView.removeFromSuperview()
}

func addImageViewWithImage(image: UIImage) {

    let imageView = UIImageView(frame: self.view.frame)
    imageView.contentMode = .scaleAspectFit
    imageView.backgroundColor = UIColor.black
    imageView.image! = image
    imageView.tag = 100

    let dismissTap = UITapGestureRecognizer(target: self, action: #selector(self.removeImage))
    dismissTap.numberOfTapsRequired = 1
    imageView.addGestureRecognizer(dismissTap)
    self.view.addSubview(imageView)
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.addImageViewWithImage(image: postedImage[indexPath.row])
}

最佳答案

I think you should first check and change the call in didSelect function from:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.addImageViewWithImage(image: postedImage[indexPath.row])
}

to

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath) as! FeedTableViewCell
    self.addImageViewWithImage(image: cell.postedImage.image)
}

现在,您的 addImageViewWithImage 将接受来自包含在单元格中的 ImageView 的图像。

关于ios - 点击 Swift 时全屏显示 tableviewcell 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45536405/

相关文章:

ios - 添加到 View 时,约束项必须是该 View (或 View 本身)的后代。

ios - 如何防止状态栏在 UIImagePickerController 覆盖整个屏幕之前消失?

swift - CoreData 对象插入到看似随机的列表位置

ios - 尝试存储数据时我的代码出错

iphone - iOS 应用程序在上传后立即被苹果拒绝 - 图像无效

ios - NSOperations、依赖和失败的操作

ios - iOS 中的基本表达语言

ios - 在后台线程中为 Collection View 加载图像

ios - 如何将数据传递到 UINavigationController 堆栈上的第 n 个 View Controller ?

ios - 收到通知时点击打开本地通知 - iOS - Swift