Cha*_*rly 2 screenshot objective-c uiimagepickercontroller ios swift
在我的iOS应用中,有没有办法访问从我的应用程序中截取的所有屏幕截图?
如果不可能,有没有办法只用截屏专辑(来自所有应用程序)打开图像选择器控制器(UIImagePickerController)?
谢谢.
没有办法提供标准的UIImagePickerController,其源类型不是这里定义的
但是,有一种方法可以获取截图的专辑并将其呈现在自己的UI中.根据文档,你可以做这样的事情:
let options = PHFetchOptions()
options.predicate = NSPredicate(format: "localizedTitle = Screenshots")
let collections = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: options)
let sceenShots = collections.firstObject as? PHAssetCollection
Run Code Online (Sandbox Code Playgroud)
但是由于bug(上面会因为谓词而崩溃)你可以获取所有专辑,然后过滤截图的专辑(适用于iOS8 +)
let collections = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: nil)
var screenshots: PHAssetCollection?
collections.enumerateObjectsUsingBlock {
(collection, _, _) -> Void in
if collection.localizedTitle == "Screenshots" {
screenshots = collection as? PHAssetCollection
}
}
Run Code Online (Sandbox Code Playgroud)
或者如果您的目标是iOS9 +,您可以这样做:
let collections = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .SmartAlbumScreenshots, options: nil)
let screenshots = collections.lastObject as? PHAssetCollection
Run Code Online (Sandbox Code Playgroud)
另请注意,无法从特定应用中获取屏幕截图.