UzysAssetsPickerController委托方法详解:从didFinishPickingAssets到取消操作全攻略

📅 2026/7/21 17:55:17 👁️ 阅读次数 📝 编程学习
UzysAssetsPickerController委托方法详解:从didFinishPickingAssets到取消操作全攻略

UzysAssetsPickerController委托方法详解:从didFinishPickingAssets到取消操作全攻略

【免费下载链接】UzysAssetsPickerControllerAlternative UIImagePickerController , You can take a picture with camera and pick multiple photos and videos项目地址: https://gitcode.com/gh_mirrors/uz/UzysAssetsPickerController

UzysAssetsPickerController是一款强大的iOS图片选择框架,作为UIImagePickerController的替代方案,它支持相机拍摄和多图/视频选择功能。本文将深入解析其委托方法体系,帮助开发者轻松实现从资产选择到取消操作的完整业务逻辑。

委托协议基础:UzysAssetsPickerControllerDelegate

要使用UzysAssetsPickerController的委托方法,首先需要遵循UzysAssetsPickerControllerDelegate协议。该协议定义在UzysAssetsPickerController.h文件中,是实现资产选择回调的核心接口。

在视图控制器中声明遵循协议的方式如下:

@interface YourViewController : UIViewController <UzysAssetsPickerControllerDelegate>

同时需要将控制器的delegate属性设置为当前视图控制器:

UzysAssetsPickerController *picker = [[UzysAssetsPickerController alloc] init]; picker.delegate = self;

核心委托方法:didFinishPickingAssets

当用户完成资产选择并点击确认后,uzysAssetsPickerController:didFinishPickingAssets:方法会被调用,该方法定义在UzysAssetsPickerController.h的第16行:

- (void)uzysAssetsPickerController:(UzysAssetsPickerController *)picker didFinishPickingAssets:(NSArray *)assets;

参数解析

  • picker:触发回调的UzysAssetsPickerController实例
  • assets:包含所选资产的数组,通常是ALAsset或PHAsset对象(取决于iOS版本)

典型实现示例

- (void)uzysAssetsPickerController:(UzysAssetsPickerController *)picker didFinishPickingAssets:(NSArray *)assets { // 关闭选择器 [self dismissViewControllerAnimated:YES completion:nil]; // 处理选中的资产 for (id asset in assets) { // 资产处理逻辑 if ([asset isKindOfClass:[PHAsset class]]) { // iOS 8+ PHAsset处理 PHAsset *phAsset = (PHAsset *)asset; // 获取图片或视频资源 } else if ([asset isKindOfClass:[ALAsset class]]) { // iOS 7及以下 ALAsset处理 ALAsset *alAsset = (ALAsset *)asset; // 获取图片或视频资源 } } }

取消操作处理:didCancel委托方法

虽然在搜索结果中未直接找到didCancel相关方法声明,但根据iOS开发惯例和框架设计,通常会有类似以下形式的取消回调方法:

- (void)uzysAssetsPickerControllerDidCancel:(UzysAssetsPickerController *)picker;

典型实现示例

- (void)uzysAssetsPickerControllerDidCancel:(UzysAssetsPickerController *)picker { // 关闭选择器 [self dismissViewControllerAnimated:YES completion:^{ // 可选:添加取消后的额外逻辑 NSLog(@"用户取消了资产选择"); }]; }

委托方法使用注意事项

  1. 内存管理:确保在设置delegate时使用weak引用,避免循环引用,如UzysAssetsPickerController.h中定义的属性:

    @property (nonatomic, weak) id <UzysAssetsPickerControllerDelegate> delegate;
  2. 权限处理:在调用资产选择器前,确保已获取照片库访问权限,可使用PHPhotoLibrary的授权方法进行检查

  3. 资源类型区分:根据返回的assets数组中对象类型(PHAsset或ALAsset)进行适配处理,确保兼容不同iOS版本

  4. 异步处理:获取资产资源(尤其是视频)是耗时操作,应在后台线程处理,避免阻塞UI

完整集成流程

  1. 导入头文件

    #import "UzysAssetsPickerController.h"
  2. 遵循委托协议

    @interface YourViewController () <UzysAssetsPickerControllerDelegate>
  3. 创建并配置选择器

    UzysAssetsPickerController *picker = [[UzysAssetsPickerController alloc] init]; picker.delegate = self; picker.maximumNumberOfSelection = 5; // 设置最大选择数量 picker.showsNumberOfSelectedAssets = YES; // 显示已选择数量
  4. 实现委托方法

    • uzysAssetsPickerController:didFinishPickingAssets:
    • uzysAssetsPickerControllerDidCancel:
  5. 展示选择器

    [self presentViewController:picker animated:YES completion:nil];

通过上述委托方法的实现,你可以轻松处理UzysAssetsPickerController的各种用户交互,构建流畅的图片/视频选择体验。无论是处理选中的资产还是响应用户取消操作,这些委托方法都提供了清晰的回调机制,帮助你将框架无缝集成到自己的应用中。

【免费下载链接】UzysAssetsPickerControllerAlternative UIImagePickerController , You can take a picture with camera and pick multiple photos and videos项目地址: https://gitcode.com/gh_mirrors/uz/UzysAssetsPickerController

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考