Kullanıcının fotoğrafını çekmek isteyip istemediğini veya kitaplarından bir resim seçmesini isteyen bir uyarı tetikleyen bir Bar Düğmesi Öğesi var. Fotoğraf kütüphanesi seçildiğinde, bir fotoğraf seçtikleri için bir UIImagePickerController'ı başlatıyorum.Bar Düğmesi Öğe işten çıkarıldıktan sonra çalışmıyor UIImagePickerController
Sorunum, bir görüntü seçip görüntü denetleyicisini kapattıktan sonra, uygulamanın özgün görüntü denetleyiciye geri döndüğü, görüntünün çıkışta düzgün görüntülendiği, ancak daha önce çalışan düğmenin bir görüntü seçmek için uyarıyı tetiklemeyeceği tekrar (ne de herhangi bir şey konsola yazdırılacak).
@IBAction func pickAnImage(sender: AnyObject) {
selectImageSourceAlert()
}
func selectImageSourceAlert() {
let alert = UIAlertController(title: nil, message: nil, preferredStyle: .ActionSheet)
let userLibrary = UIAlertAction(title: "Photo Library", style: .Default) {
_ in
self.presentImagePicker(pickerStyle: .PhotoLibrary)
}
let useCamera = UIAlertAction(title: "Camera", style: .Default) {
_ in
let x = UIImagePickerController.isSourceTypeAvailable(.Camera)
print(x)
if x {
self.presentImagePicker(pickerStyle: .Camera)
} else {
print("No camera available")
}
}
let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
alert.addAction(userLibrary)
alert.addAction(useCamera)
alert.addAction(cancelAction)
presentViewController(alert, animated: true, completion: nil)
}
func presentImagePicker(pickerStyle style: UIImagePickerControllerSourceType) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = style
imagePicker.allowsEditing = true
self.presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
self.dismissViewControllerAnimated(true, completion: nil)
if let image = info["UIImagePickerControllerEditedImage"] as? UIImage {
imagePickerView.image = image
}
}
Birkaç gün sonra, hala çözemiyorum. Ben "image = info" biti 'nı kaldırdığımda ve görüntüyü imagePickerView çıkışına atayarak, görüntü denetleyicisini kapattıktan sonra düğmenin çalıştığını fark ettim. Düğme, bir görüntü seçmeden önce herhangi bir noktada iptal edersem de çalışır. Sadece görüntüyü çıkışa atadığımda işe yaramıyor.
Yardımlarınız için şimdiden teşekkür ederiz!
DÜZENLEME: Sağ üst köşede ikinci bir düğme eklediğimde ve aynı eylemi atadığımda, bir fotoğraf atandıktan sonra bile çalıştığını fark ettim. Sol alt köşedeki ilk Bar Düğmesi Öğesi, yalnızca resme atanmış bir resim olmadığında çalışır. Neden herhangi bir şekilde imageView tarafından kapsanmadığından emin değil. Netlik için kırmızı arka plan rengi eklendi. Gerçekten Seçici kapatıldı Image gibi bu gerekmez
self.dismissViewControllerAnimated(true, completion: nil)
:
bize Image Seçici tetikler düğmesi için kod gösterin. –
Sadece ek kodu orijinal gönderiye eklediniz. Biraz uzun ama umarım yardımcı olur. –
Kodunuzu yeni bir projede denedim ve durumumda tamam çalışıyor. Resim seçiciyi reddettikten sonra seçilen görüntüde ne yapıyorsunuz? – RomanN