在表格视图UITableViewController上添加子视图,并根据被点击的单元格的位置显示它

问题描述

我有一个表格视图控制器,其中的单元格包括一个图像视图,并且当用户点击该单元格时,图片将变为“全屏模式”,如果再次轻按该单元格,它将返回正常状态。可以,但是我发现了两个问题:

  1. 如果点击了前几个单元格,则一切看起来都很好,但是如果点击了最后一个单元格,则全屏图片显示在表格视图的顶部。

  2. 图片进入全屏模式后,我仍然可以滚动到表格视图的底部

这是我目前用于“全屏模式”的功能

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

func imageTapped(image:UIImage){
    let newImageView = UIImageView(image: image)
    newImageView.frame = self.view.frame
    newImageView.backgroundColor = UIColor.black.withAlphaComponent(0.8)
    newImageView.contentMode = .scaleAspectFit
    newImageView.isUserInteractionEnabled = true
    let tap = UITapGestureRecognizer(target: self,action: #selector(dismissFullscreenImage))
        newImageView.addGestureRecognizer(tap)
    self.view.addSubview(newImageView)
    self.navigationController?.isNavigationBarHidden = true
    self.tabBarController?.tabBar.isHidden = true
}

@objc func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
    self.navigationController?.isNavigationBarHidden = false
    self.tabBarController?.tabBar.isHidden = false
    sender.view?.removeFromSuperview()
}

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)