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

时间:2018-12-21 00:11:03

标签: swift uitableview

我在一个表格视图单元格中有一个图像,用户可以在其中单击该图像,应用程序将在其中添加该图像的子视图。表格视图可以比屏幕更长。问题是,如果我将表视图向上滚动一点,并且用户点击图像,那么子视图中的图像就会向上滚动。我的猜测是打电话给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
}

这是我想在任何地方轻按的样子 this is what it’s suppose to look like wherever I tap it

如果我向上滚动表格视图并点击图像会发生什么 this is what happens if I scroll the table view up and tap the image

1 个答案:

答案 0 :(得分:2)

self.view是一个表格视图,是一种滚动视图。如果在其中添加一个子视图,它将随表格视图一起滚动。我想你不想那样。

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

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