2017-05-11 2 views
0

私は、画像ビューに接続されたタップジェスチャ認識器を持っています。画像をタップするとフルスクリーンになり、再びタップすると解除されます。ユーザは、画像をズームするためにピンチする能力を有するが、画像がユーザによって押されて動かされると、それはバックグラウンドビューを示す。背景を隠して、画像が消されるまで見ることができないようにしたい。私が提供したイメージは、私が言葉よりもうまく説明できると思います。画像が拡大されたときに背景を非表示にする方法

var newImageView: UIImageView! 



@IBAction func imageTapped(_ sender: UITapGestureRecognizer) { 
    self.navigationController?.setNavigationBarHidden(true, animated: true) 

    let imageView = sender.view as! UIImageView 

    let scrollView = UIScrollView(frame: self.view.frame) 


    newImageView = UIImageView(image: imageView.image) 
    newImageView.frame = self.view.frame 
    newImageView.backgroundColor = .black 
    newImageView.contentMode = .scaleAspectFit 
    newImageView.isUserInteractionEnabled = true 


    let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage)) 
    scrollView.addGestureRecognizer(tap) 


    scrollView.delegate = self 
    scrollView.minimumZoomScale = 1.0 
    scrollView.maximumZoomScale = 3.0 

    scrollView.addSubview(newImageView) 

    self.view.addSubview(scrollView) 
} 

func viewForZooming(in scrollView: UIScrollView) -> UIView? 
{ 
    return newImageView; 
} 

func dismissFullscreenImage(_ sender: UITapGestureRecognizer) { 
    self.navigationController?.setNavigationBarHidden(false, animated: true) 
    sender.view?.removeFromSuperview() 
} 

regular view

enter image description here enter image description here

+0

画像ビューの下に全画面でビューを表示し、画像ビューと同じビューを表示/非表示もできます。黒または任意の色を表示します –

答えて

1

あなたは、単にbackgroundElement.isHidden = trueプロパティを持つ要素を非表示にすることができます。ビューが閉じられると、backgroundElement.isHidden = falseを使用して背景をリセットできます。

+0

どの要素が呼び出されるべきか、私はそれを呼び出すようにしました。 .isHidden = true "が正しくありませんでした –

関連する問題