如何防止隐藏相册显示在 CTAssetsPickerController 上
How to prevent hidden album from showing up on CTAssetsPickerController
我正在使用 CTAssetsPickerController https://github.com/chiunam/CTAssetsPickerController 从照片应用导入图像。我想禁止从某些用户可能拥有的 'Hidden' 相册导入。如果您有 What's App 和一个隐藏的相册,您会注意到您无法从所述相册中导入。我希望能够做同样的事情,但一直在寻找几个小时,但还没有找到任何地方。感谢您的帮助
- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType {
// Create the image picker
// request authorization status
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
dispatch_async(dispatch_get_main_queue(), ^{
// init picker
self.imagePickerController = [[CTAssetsPickerController alloc] init];
// set delegate
self.imagePickerController.delegate = self;
// create options for fetching photo only
PHFetchOptions *fetchOptions = [PHFetchOptions new];
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d", PHAssetMediaTypeImage];
// assign options
self.imagePickerController.assetsFetchOptions = fetchOptions;
// Optionally present picker as a form sheet on iPad
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
self.imagePickerController.modalPresentationStyle = UIModalPresentationFormSheet;
// present picker
[self presentViewController:self.imagePickerController animated:YES completion:nil];
});
}];
查看 CTAssetsPickerController 的存储库,您似乎可以通过将名为 assetCollectionSubtype
的 属性 设置为整数值数组来设置相册类型,对应于 Apple 的 PHAssetCollectionSubtype 枚举。 https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAssetCollection_Class/#//apple_ref/c/tdef/PHAssetCollectionSubtype
所以经过更多的研究,我发现框架有一个委托方法,可以让你禁用资产。
为了解决我的问题,我实现了这个方法:
- (BOOL)assetsPickerController:(CTAssetsPickerController *)picker shouldEnableAsset:(PHAsset *)asset {
return !asset.isHidden;
}
隐藏的相册仍然显示,但无法从中导入。
我正在使用 CTAssetsPickerController https://github.com/chiunam/CTAssetsPickerController 从照片应用导入图像。我想禁止从某些用户可能拥有的 'Hidden' 相册导入。如果您有 What's App 和一个隐藏的相册,您会注意到您无法从所述相册中导入。我希望能够做同样的事情,但一直在寻找几个小时,但还没有找到任何地方。感谢您的帮助
- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType {
// Create the image picker
// request authorization status
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
dispatch_async(dispatch_get_main_queue(), ^{
// init picker
self.imagePickerController = [[CTAssetsPickerController alloc] init];
// set delegate
self.imagePickerController.delegate = self;
// create options for fetching photo only
PHFetchOptions *fetchOptions = [PHFetchOptions new];
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d", PHAssetMediaTypeImage];
// assign options
self.imagePickerController.assetsFetchOptions = fetchOptions;
// Optionally present picker as a form sheet on iPad
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
self.imagePickerController.modalPresentationStyle = UIModalPresentationFormSheet;
// present picker
[self presentViewController:self.imagePickerController animated:YES completion:nil];
});
}];
查看 CTAssetsPickerController 的存储库,您似乎可以通过将名为 assetCollectionSubtype
的 属性 设置为整数值数组来设置相册类型,对应于 Apple 的 PHAssetCollectionSubtype 枚举。 https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAssetCollection_Class/#//apple_ref/c/tdef/PHAssetCollectionSubtype
所以经过更多的研究,我发现框架有一个委托方法,可以让你禁用资产。
为了解决我的问题,我实现了这个方法:
- (BOOL)assetsPickerController:(CTAssetsPickerController *)picker shouldEnableAsset:(PHAsset *)asset {
return !asset.isHidden;
}
隐藏的相册仍然显示,但无法从中导入。