私が作っているアプリでは、ユーザーが画像をクリックしてアプリで全画面表示できるようにしたい。そして、ユーザーは今フルスクリーンイメージをクリックして元のサイズにすることができるようになります。スウィフト - クリックすると画像をフルスクリーンで表示し、もう一度クリックすると元のサイズにするにはどうすればいいですか?
これは可能ですか?
私はxcodeの初心者の学習者であり、これを行う方法を知りたいと思っています。
私が作っているアプリでは、ユーザーが画像をクリックしてアプリで全画面表示できるようにしたい。そして、ユーザーは今フルスクリーンイメージをクリックして元のサイズにすることができるようになります。スウィフト - クリックすると画像をフルスクリーンで表示し、もう一度クリックすると元のサイズにするにはどうすればいいですか?
これは可能ですか?
私はxcodeの初心者の学習者であり、これを行う方法を知りたいと思っています。
画像がクリックされたときにフルスクリーンイメージ(アスペクト比を維持するための黒い棒)を作成するコードです。
これを使用するには、画像を保持するViewControllerにこのコードを追加します。
その後、あなたは、拡大のためのボックスをチェックしたいあなたImageViewのためでをuserInteractionEnabledインスペクタ属性、およびそれにTapGestureRecognizerを追加し、それがimageTapped
を呼び出して設定します。
@IBAction func imageTapped(sender: UITapGestureRecognizer) {
let imageView = sender.view as! UIImageView
let newImageView = UIImageView(image: imageView.image)
newImageView.frame = UIScreen.main.bounds
newImageView.backgroundColor = .blackColor()
newImageView.contentMode = .ScaleAspectFit
newImageView.userInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: "dismissFullscreenImage:")
newImageView.addGestureRecognizer(tap)
self.view.addSubview(newImageView)
self.navigationController?.isNavigationBarHidden = true
self.tabBarController?.tabBar.isHidden = true
}
func dismissFullscreenImage(sender: UITapGestureRecognizer) {
self.navigationController?.isNavigationBarHidden = false
self.tabBarController?.tabBar.isHidden = false
sender.view?.removeFromSuperview()
}
このコードは、他のすべてをカバーし、新しいフルスクリーン画像を作成することによって動作します。これは独自のTapGestureRecognizerを持っていて、フルスクリーンイメージをスーパービューから削除します(したがって、元のスクリーンを覆い隠します)。
スウィフト3及び4の更新:
@IBAction func imageTapped(_ sender: UITapGestureRecognizer) {
let imageView = sender.view as! UIImageView
let newImageView = UIImageView(image: imageView.image)
newImageView.frame = UIScreen.main.bounds
newImageView.backgroundColor = .black
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()
}
テーブルビューセル内の画像ビューのために、この作業を行います? – WoShiNiBaBa
@WoShiNiBaBa、なぜそうは見えないのですか?あなたのセルの 'UIImageView'には** userInteractionEnabled **を設定し、' cellForRowAt'には 'UITapGestureRecognizer'をプログラムで追加する必要があります。 – vacawama
コードを画像にどのように接続しますか? –