2017-05-07 23 views
1

imageViewがタップされるとナビゲーションバーを非表示にし、画像ビューがタップされるとナビゲーションバーがフルスクリーン画像のビューをぼやけさせます。画像がタップされ、画像が消去されると再び表示されます。私のイメージがタップされているという私のコードです。だからここ画像がタップされたときにナビゲーションバーを非表示にする方法

//expandImage 




@IBAction func expand(_ sender: UITapGestureRecognizer) { 
    let imageView = sender.view as! UIImageView 
    let 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(dismissFullscreen)) 
    newImageView.addGestureRecognizer(tap) 
    self.view.addSubview(newImageView) 
} 

func dismissFullscreen(_ sender: UITapGestureRecognizer) { 
    sender.view?.removeFromSuperview() 
} 

答えて

1

あなたの拡大()メソッドにこれを追加します。

self.navigationController?.setNavigationBarHidden(true, animated: true) 

そしてdismissFullscreenで()メソッド:

self.navigationController?.setNavigationBarHidden(false, animated: true) 

それとも、(セグエなどで)それに画像を渡し、新しいのViewControllerを作成することができますこれを新しいViewControllerのviewDidLoad()に追加してください:

self.navigationController?.hidesBarsOnTap = true 
1

は、あなたがそれを行うことができる方法である。

class ViewController: UIViewController { 

    @IBOutlet weak var imageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let tapImageScrollView = UITapGestureRecognizer(target: self, action: #selector(imageTapped(_:))) 
     imageView.isUserInteractionEnabled = true 
     imageView.addGestureRecognizer(tapImageScrollView) 
    } 

    func imageTapped(_ sender: UIGestureRecognizer) { 
     if self.navigationController?.navigationBar.isHidden == false { 
      self.navigationController?.navigationBar.isHidden = true 
     } else { 
      self.navigationController?.navigationBar.isHidden = false 
     } 
    } 
} 

だから、基本的にあなたのimageViewUITapGestureRecognizerを追加し、navigationBarは、その後、表示したい隠されていない場合imageTapped機能であなたがチェックnavigationBarを非表示にして、imageViewを再度クリックすると、もう一度navigationBarが表示されます。

したがって、dismissFullscreen機能にimageTappedのロジックを追加するだけです。

関連する問題