WPMediaPicker
WPMediaPicker 是一个 iOS 控制器,允许捕获和选择媒体资源。它允许
- 一次选择多个媒体对象。
- 在选择器内捕获新媒体。
- 使用不同的媒体库数据源。
- 在不同的相册之间切换。
- 按媒体类型筛选。
- 全屏预览媒体(图片和视频)。
- 将媒体选择器显示为键盘输入视图。
- 非常快速且优化内存。
- 允许资产的水平和垂直滚动。
- 允许自定义搜索/筛选资产。
安装
WPMediaPicker 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod "WPMediaPicker"
使用方法
要使用选择器,请做以下操作
导入标题
#import <WPMediaPicker/WPMediaPicker.h>
以窗口模式创建并展示选择器
WPNavigationMediaPickerViewController * mediaPicker = [[WPNavigationMediaPickerViewController alloc] init];
mediaPicker.delegate = self;
[self presentViewController:mediaPicker animated:YES completion:nil];
实现didFinishPickingAssets代理
这个代理负责在操作完成后关闭选择器。要关闭选择器,调用负责显示WPNavigationMediaPickerController
对象的展示控制器的dismissViewControllerAnimated:completion:
方法。请参考演示应用程序。
- (void)mediaPickerController:(WPMediaPickerViewController *)picker didFinishPickingAssets:(NSArray<WPMediaAsset> *)assets
{
[self dismissViewControllerAnimated:YES completion:nil];
}
显示选择器的其他方法
上面的示例展示了在模态视图中显示选择器的推荐方法。根据您的应用程序需求,目前有三种可用的控制器来显示选择器。
- WPMediaPickerViewController,这是用于显示媒体的基本集合视图控制器。它可以用于其他视图控制器内部,使用包含关系。
- WPInputMediaPickerViewController,它是 WPMediaPickerController 的包装器,用于作为 UIControl 的输入视图。
- WPNavigationMediaPickerViewController,这是一个便利的包装器,在 UINavigationController 中包装
WPMediaPickerViewController
,用于在模态上下文中显示。
如何配置选择器的外观
只需使用 UIKit 的标准外观方法。以下是如何配置主要组件的示例。
//Configure navigation bar background color
[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[WPNavigationMediaPickerViewController class]]] setBarTintColor:[UIColor colorWithRed:0/255.0f green:135/255.0f blue:190/255.0f alpha:1.0f]];
//Configure navigation bar items text color
[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[WPNavigationMediaPickerViewController class]]] setTintColor:[UIColor whiteColor]];
//Configure navigation bar title text color
[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[WPNavigationMediaPickerViewController class]]] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]} ];
//Configure background color for media scroll view
[[UICollectionView appearanceWhenContainedInInstancesOfClasses:@[[WPMediaCollectionViewController class]]] setBackgroundColor:[UIColor colorWithRed:233/255.0f green:239/255.0f blue:243/255.0f alpha:1.0f]];
//Configure background color for media cell while loading image.
[[WPMediaCollectionViewCell appearanceWhenContainedInInstancesOfClasses:@[[WPMediaCollectionViewController class]]] setBackgroundColor:[UIColor colorWithRed:243/255.0f green:246/255.0f blue:248/255.0f alpha:1.0f]];
//Configure color for activity indicator while loading media collection
[[UIActivityIndicatorView appearanceWhenContainedInInstancesOfClasses:@[[WPMediaCollectionViewController class]]] setColor:[UIColor grayColor]];
如何为选择器使用自定义数据源
如果您有一个自定义的媒体数据库,并想使用 WPMediaPicker 显示,您需要围绕您的数据实现以下协议
您可以通过查看协议文档以获取更多实现细节。实现后,您可以通过以下方式简单使用它
self.customDataSource = [[WPCustomAssetDataSource alloc] init];
mediaPicker.dataSource = self.customDataSource;
示例项目
要运行示例项目,请克隆存储库,并首先从 Example
目录运行 pod install
。
需求
- ARC
- 照片库,AVFoundation,ImageIO
- XCode 10或以上
- iOS 11或以上
贡献力量
阅读我们的贡献力量指南,了解如何报告问题、贡献代码以及其他贡献方式。
联系我
如果您对设置有疑问或只是想打个招呼,加入WordPress Slack,并在#mobile
频道留言。
作者
WordPress,[email protected]
许可证
WPMediaPicker采用GPL许可证。有关更多信息,请参阅"LICENSE"文件。