Swift 图像的My addSubview添加了比预期更大的视图

Swift 图像的My addSubview添加了比预期更大的视图,swift,uitableview,Swift,Uitableview,我在表格视图单元格中有一个图像,用户可以点击该图像。应用程序会添加一个子视图,其中包含该图像。表格视图可以比屏幕长。问题是,如果我让表视图向上滚动一点,用户点击图像,子视图中的图像就会向上滚动。我猜调用newImageView.frame=UIScreen.main.bounds不是我需要的吗 @IBAction func imageTapped(_ sender: UITapGestureRecognizer) { let imageView = sender.view as! UII

我在表格视图单元格中有一个图像,用户可以点击该图像。应用程序会添加一个子视图,其中包含该图像。表格视图可以比屏幕长。问题是,如果我让表视图向上滚动一点,用户点击图像,子视图中的图像就会向上滚动。我猜调用
newImageView.frame=UIScreen.main.bounds
不是我需要的吗

@IBAction func imageTapped(_ sender: UITapGestureRecognizer) {
    let imageView = sender.view as! UIImageView
    let bookImage = UIImageView(image: imageView.image)
    bookImage.frame = UIScreen.main.bounds
    bookImage.backgroundColor = .black
    bookImage.contentMode = .scaleAspectFit
    bookImage.isUserInteractionEnabled = true
    let bookImageTap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
    bookImage.addGestureRecognizer(bookImageTap)
    self.view.addSubview(bookImage)
    self.navigationController?.isNavigationBarHidden = true
    self.tabBarController?.tabBar.isHidden = true
}
无论我在哪里轻触它,它都应该是这个样子

如果我向上滚动表格视图并点击图像,就会出现这种情况

self.view
是一种表格视图,它是一种滚动视图。如果向其中添加子视图,它将与表视图一起滚动。我想你不会想要的

因此,您不应将
bookImage
添加为
self.view
的子视图。您可以将其添加为
窗口的子视图

let window = (UIApplication.shared.delegate as! AppDelegate).window
window?.addSubview(bookImage)

要将图像视图添加到何处?在屏幕的左上角?哦,我明白了。我想做的是将图像添加到视图中,并在它出现时将其居中。你的意思是你想要一个类似缩放功能的东西,以便当用户点击图像时,图像填充整个屏幕?你能显示一张图片来说明你想做什么吗?我按要求添加了照片,这是我的回答工作吗?正如Sweeper也提到的
如果你也想显示状态栏,请将UIApplication.shared.statusBarFrame.height设置为y,高度为屏幕高度减去状态栏高度。