我正在使用Iphone應用程序,我可以使用Assetslibrary枚舉資產並將它們加載到表視圖中。用戶可以刪除應用中的一行(圖片/視頻),但是如何直接從我的應用更新Iphone相冊?否則,在刷新時,tableview將重新加載先前刪除的資產。從IOS中的IPhone刪除資產(圖片或視頻)
回答
可能重複https://stackoverflow.com/a/11058934/300292。簡單的回答:你不能。照片應用是唯一可以刪除資源的地方。這可能是一件好事 - 你不希望任何無聊的應用程序能夠刪除所有的照片,你會嗎?
它遲了,但對於其他用戶它會有所幫助。
正如我們所知,只有照片應用程序可以刪除圖像。在這種情況下,我通過alassets從照片中檢索所有圖像,在自定義圖庫中查看它們,並給出用戶從資產中選擇多個圖像以將其保存在電話目錄中的選項。接下來,我使用我的應用程序庫而不是照片庫。我已經在應用程序中給出了選項,可以隨時將圖片從照片導入到應用程序庫(這是圖像的文檔目錄文件夾)。
在iOS8上刪除照片可以使用照片框架
請檢查照片的文件框架
刪除資產是指PHAssetChangeRequest
+ (void)deleteAssets:(id<NSFastEnumeration>)assets
其中assets
是PHAsset
對象的數組被刪除。
+
對於刪除集合指PHAssetCollectionChangeRequest
+ (void)deleteAssetCollections:(id<NSFastEnumeration>)assetCollections
https://developer.apple.com/documentation/photos/phassetchangerequest/1624062-deleteassets
https://developer.apple.com/documentation/photos/phassetcollectionchangerequest/1619453-deleteassetcollections
我不相信應用程序能夠從照片庫中刪除資產。我想看一個例子。 – coco
如果我只有圖像和圖像的本地標識符如「AF508E2B-6B00-4E26-8A2B-B160C74478A9/L0/001」該怎麼辦。那麼如何從圖庫中的自定義相冊中刪除圖像? –
特德說,這是現在可以在iOS版8使用照片的服務。實際上它很乾淨。您需要向光盤庫提交更改請求。這是一個例子。
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
[PHAssetChangeRequest deleteAssets:arrayOfPHAssets];
} completionHandler:^(BOOL success, NSError *error) {
NSLog(@"Finished deleting asset. %@", (success ? @"Success." : error));
}];
請確保您已導入照片,並獲得用戶的授權。 (你可能沒有顯示已圖像)
PHAssetchangeRequest - deleteAssets https://developer.apple.com/documentation/photos/phassetchangerequest/1624062-deleteassets PHPhotoLibrary類 - authorizationStatus https://developer.apple.com/documentation/photos/phphotolibrary/1620745-authorizationstatus
什麼是arrayOfPHAssets?我想從相冊中刪除單個視頻。你可以幫我嗎 ? – Gaurav
添加一個答案,一個老問題在這裏,因爲我們經常問截圖預防的一部分的數據丟失預防(DLP)解決方案。您可以(a)註冊屏幕截圖通知,並(b)要求用戶在發生時進行刪除,但無法默默或祕密地進行刪除。這裏有一個完整的工作代碼示例:
func applicationDidBecomeActive(application: UIApplication) {
registerForScreenShotNotifications()
}
func registerForScreenShotNotifications() {
NSNotificationCenter.defaultCenter().addObserverForName(UIApplicationUserDidTakeScreenshotNotification, object: nil, queue: NSOperationQueue.mainQueue()) { (notification) in
print("Yep they took a screenshot \(notification)")
let assetToDelete = self.getLastImage()
if let assetToDelete = assetToDelete
{
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
PHAssetChangeRequest.deleteAssets([assetToDelete])
}, completionHandler: { (success, error) in
print("Success \(success) - Error \(error)")
})
}
}
}
// NOTE : You should ask for permission to access photos before this
func getLastImage() -> PHAsset? {
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: true) ]
let fetchResult = PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions)
let newestAsset = fetchResult.lastObject
return newestAsset as! PHAsset?
}
結果是這樣的:
- 1. 如何從iOS/iPhone資產庫中獲取照片/視頻原始路徑?
- 2. Ios:從視頻中刪除音頻
- 3. 如何從相冊中刪除資產而不從照片應用中刪除資產/照片?
- 4. 如何停止或從Flash Builder中刪除視頻流視圖
- 5. 的iOS SDK AVFoundation ...我如何作爲一個視頻資產的繪圖資產
- 6. 獲取iOS視頻資產方向
- 7. 如何從圖庫中刪除視頻?
- 8. 從資產庫中檢索視頻?
- 9. 從產品圖片刪除背景
- 10. 從iOS中的視圖中刪除祖先視圖的通知
- 11. iOS刪除視圖
- 12. 刪除Zen Cart中的產品圖片
- 13. 從iOS照片庫刪除圖像
- 14. Swift - 從視頻中刪除音頻
- 15. 從視頻圖庫中的視頻圖像中刪除外邊框
- 16. 從SQL資產編號中刪除Chararcters
- 17. 從IOS中的相冊或庫中刪除照片
- 18. 視頻圖像處理工具和資源爲iPhone/ios
- 19. Capistrano刪除資產
- 20. openshift刪除資產
- 21. 從其SuperView中刪除視圖,在iPhone上通知子視圖
- 22. 從資產中加載圖片
- 23. 從資源路徑中刪除照片
- 24. 如何從iPhone中的圖庫中刪除選定的照片?
- 25. Iphone刪除子視圖
- 26. iPhone - 刪除視圖和NavigationController
- 27. 如何從UWP項目中刪除視覺資產
- 28. 如何在Quartz Composer中清除視頻或圖片的背景?
- 29. 刪除視頻視圖的Seekbar android
- 30. 簡化從陣列中添加/刪除子視頻片段
只是想肯定。謝謝。 –