Swift Camera & Gallery

Merhaba arkadaşlar bu yazımda Swift ile nasıl kameradan ya da galeriden fotoğraf ve video işlemleri yaparız bundan bahsedeceğiz. Hemen hemen her uygulamada kullanıcıdan media istiyoruz. Burada bu konu bu yüzden önemli.

Bu yapacağımız örnek de üstte bir resim olacak altında ise bir buton. Kullanıcı butona basınca kameradan ya da galeriden fotoğraf veya resim isteyeceğiz. Telefonun kamerasını ya da galerisine erişmemiz için kullanıcıdan izin istememiz gerekiyor. Bunun için info.plist dosyasından gerekli izinleri yazmalıyız. Ben burada örnek olarak girdim. Uygulamayı mağazalara atarken bunlara dikkat etmek gerekiyor. Tam olarak ne için kullanacağınızı açıklamanız lazım yoksa Apple reddedebiliyor.

Bu uygulama için örnek ekran tasarımı aşağıdaki gibidir.

Sonrasında ise kod yazmaya başlayabiliriz. İlk olarak bir UIImagePicker oluşturmamız gerekiyor. Bu resim seçici ile telefonun kamerasına ya da galerisine ulaşabileceğiz. Eğer ki sadece resim ile işiniz varsa UIImagePicker medya türlerinde resim “public.image” ekleyebilirsiniz ama kullanıcının video eklemesine de izin veriyorsanız “public.movie” de eklemeniz gerekiyor. Sonrasında ise butona tıkladığında bir Action Sheet karşısına çıkartıyoruz. Burada kullanıcının medyayı kameradan mı yoksa galeriden mi seçeceğini soruyoruz. Buna göre UIImagePicker’ın kaynak tipini değiştiriyoruz.

 

Kullanıcı kamera ya da galeriden birini seçtikten sonra UIImgaePicker‘ın didFinishPickingMediaWithInfo fonksiyonuna düşüyor. Buna düşmesi için ise kullandığımız ViewController’ın UIImagePickerControllerDelegate, UINavigationControllerDelegate arayüzlerinden kalıtım alması gerekiyor. Fonksiyona düştükten sonra burada medya tipine göre ayarlayabilirsiniz. Diğer bir işlem ise kullanıcının fotoğraf veya videoda düzenledikten sonraki hallerini de alabilirsiniz.

 

Eğer kullanıcı resim seçtiyse direkt olarak bir UIImageView ile gösterebiliyoruz ama video seçtiyse AVPlayer ya da bir pod ile gösterebilirsiniz. Sonraki yazılarda AVPlayer hakkında detaylı bir yazı bulabilirsiniz.

Ekran çıktısı aşağıdaki gibidir.

Sorularınız olursa mail veya yorum atarak ulaşabilirsiniz. İyi çalışmalar.

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.