【发布时间】:2020-03-02 05:49:31
【问题描述】:
我正在尝试从照片库中获取照片,并且我只想显示照片库中的图像。我不想显示视频。
我正在使用PHFetchOptions 从照片库中获取PHAssets。我还提供了一个仅获取照片的谓词。以下是我的代码:
let allPhotosOptions = PHFetchOptions()
allPhotosOptions.predicate = NSPredicate(format: "mediaType == 1")
allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
fetchResult = PHAsset.fetchAssets(with: allPhotosOptions)
不过,我也收到了屏幕截图。我不想获取屏幕截图。我发现也有一个属性。它被称为PHAssetMediaSubtype.photoScreenshot
我更新了谓词不获取屏幕截图,但它似乎不起作用。我的许多其他图像也被过滤了,它们不是屏幕截图。下面是我更新的谓词代码
allPhotosOptions.predicate = NSPredicate(format: "mediaType == 1 AND mediaSubtypes != %d", PHAssetMediaSubtype.photoScreenshot.rawValue)
【问题讨论】:
-
我不确定是否有办法使用谓词过滤屏幕截图。我一直在做的是首先获取
PHAssets,然后检查是否phAsset.mediaSubtypes.contains(.photoScreenshot)。
标签: ios swift nspredicate photokit