2016-01-09 17 views
10

Yaptığım uygulama için, kullanıcının uygulamanın tam ekranını yapmak için bir resmi tıklatabilmesini istiyorum. Ve sonra kullanıcı, orijinal boyutta yapmak için şimdi tam ekran görüntüsünü tıklayabilmeli.Swift - Bir resme tıklatıldığında tam ekran ve daha sonra yeniden tıklatıldığında orijinal boyut nasıl oluşturulabilir?

Bu mümkün mü?

Herhangi bir yardım harika olurdu, sadece xcode ile yeni başlayan bir öğrencisiyim ve bunu nasıl yapacağımı bilmek istiyorum.

cevap

49

Bir görüntü tıklandığında tam ekran görüntüsünü (en boy oranını korumak için siyah çubuklarla) oluşturan kod.

Bunu kullanmak için, bu kodu görüntüyü tutan ViewController aracınıza ekleyin.

Sonra, genişletmek kutusunu işaretleyin istediğiniz imageview için yılında userInteractionEnabled Müfettiş Öznitelikler ve buna bir TapGestureRecognizer ekleyebilir ve imageTapped çağrı ayarlayın.

Bu kod, diğer her şeyi kapsayan yeni bir tam ekran görüntüsü oluşturarak çalışır. Tam ekran görüntüsünü superView'den (ve böylece orijinal ekranı açarak) kaldıran kendi TapGestureRecognizer'a sahiptir. Swift 3 ve 4 için


Güncelleme:

@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() 
} 
+1

mu tablo görünümü hücrenin içindeki resim görünümleri için bu iş ?? – WoShiNiBaBa

+0

@WoShiNiBaBa, neden göremiyorum. Hücrenizdeki 'UIImageView' için ** userInteractionEnabled ** ayarlamalısınız ve' UITapGestureRecognizer'ı program aracılığıyla 'cellForRowAt' içine eklemelisiniz. – vacawama

+0

Kodunuzu bir görüntüye nasıl bağlarsınız? –

İlgili konular