2015-05-01 13 views
5

का उपयोग करके इसे चुनने के बाद PhotoLibrary से एक छवि को कैसे हटाएं मुझे PhotoLibrary से छवि को हटाना होगा। मैं छवि लेने के लिए अपने आवेदन में UIImagePickerController का उपयोग कर रहा हूँ। मैं अपने आवेदन में इसका उपयोग करने के बाद आईओएस फोटो लाइब्रेरी से इस छवि को हटाने की जरूरत है।UIImagePickerController

मेरे कोड स्निपेट

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary) 
      { 
       var imagePicker = UIImagePickerController() 
       imagePicker.delegate = self 
       imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary; 
       imagePicker.allowsEditing = false 
       self.presentViewController(imagePicker, animated: true, completion: nil) 
      } 


// MARK:- UIImagePickerControllerDelegate 
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) { 
    pickedImage = image 
    saveImageToDisk(pickedImage) 
/* 
I need the logic to delete this image from PhotoLibrary here. 
*/ 
    self.dismissViewControllerAnimated(true, completion: nil) 
    refreshCollectionView() 
} 
+0

इस जवाब का उल्लेख http://stackoverflow.com/questions/29466866/how-to-delete-the-last-photo-in-swift- –

+0

http://stackoverflow.com/questions/28724105/ हटाने-ए-कैमरा-रोल-एसेट-उपयोग-फोटो-फ्रेमवर्क –

उत्तर

3

बस, इसके बाद के संस्करण में जोड़ने के लिए तेजी से 3.0 यह मेरे लिए काम किया है।

PHPhotoLibrary.shared().performChanges({ 
       let imageAssetToDelete = PHAsset.fetchAssets(withALAssetURLs: imageUrls as! [URL], options: nil) 
       PHAssetChangeRequest.deleteAssets(imageAssetToDelete) 
      }, completionHandler: {success, error in 
       print(success ? "Success" : error) 
      }) 
4

प्राप्त छवि यूआरएल ....

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 
    let imageURL = info[UIImagePickerControllerReferenceURL] as NSURL 
    let imageName = imageURL.path!.lastPathComponent 


    picker.dismissViewControllerAnimated(true, completion: nil) 

} 

संपत्ति हटाएँ:

PHPhotoLibrary.sharedPhotoLibrary().performChanges({ 
    let imageAssetToDelete = PHAsset.fetchAssetsWithALAssetURLs(**imageUrl**, options: nil) 
    PHAssetChangeRequest.deleteAssets(imageAssetToDelete) 
}, 
    completionHandler: { success, error in 
     NSLog("Finished deleting asset. %@", (success ? "Success" : error)) 
}) 
+0

धन्यवाद। मैं deleteAssets में उपयोग करने के लिए imagePickerController से छवि url कैसे प्राप्त करूं? –

+0

@ दिनेश जेयसंकर यहां एक डेमो है: https://github.com/backslash112/ios_phphotolibrary_demo – backslash112

1

आप निम्नलिखित तरीके से यह कर सकते हैं :

//under SamplePhotosApp/AAPLAssetViewController.m 

// Delete asset from library 
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ 
[PHAssetChangeRequest deleteAssets:@[self.asset]]; 
} completionHandler:completionHandler]; 

जहां self.asset एक PHAsset वस्तु (जो कई मायनों में प्राप्त किया जा सकता) तस्वीर आप हटाना चाहते हैं की चर्चा करते हुए है। फोटो ढांचे को आयात करना न भूलें!

आशा है कि इससे मदद मिलती है!

6

सहायता के लिए धन्यवाद।

इसे नीचे दिए गए कोड के साथ फिक्स्ड करें।

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage 
    pickedImage = image 
    saveImageToDisk(pickedImage) 
    refreshCollectionView() 
    let imageUrl = info[UIImagePickerControllerReferenceURL] as! NSURL 
    var imageUrls = [imageUrl] 
    //Delete asset 
    PHPhotoLibrary.sharedPhotoLibrary().performChanges({ 
     let imageAssetToDelete = PHAsset.fetchAssetsWithALAssetURLs(imageUrls, options: nil) 
     PHAssetChangeRequest.deleteAssets(imageAssetToDelete) 
     }, 
     completionHandler: { success, error in 
      NSLog("Finished deleting asset. %@", (success ? "Success" : error)) 
    }) 
    self.dismissViewControllerAnimated(true, completion: nil) 
    refreshCollectionView() 
} 
+0

क्या होगा यदि मैं पिकर व्यू के बिना छवि को हटाना चाहता हूं? तो छवि यूआरएल कैसे प्राप्त कर सकते हैं? –

+0

यह एक-एक करके हटा देगा, मैं प्रत्येक बार उपयोगकर्ता इंटरैक्शन के बिना एकाधिक छवि कैसे हटा सकता हूं? –

संबंधित मुद्दे