
本文将向您展示如何调用相册中的图片以及如何在iOS App中获取最新图片. 希望本文对所有人都有帮助.
UIImagePickerController从照片,画廊和相册中获取图片
有三种方法可以在iOS中获取图片:
1. 直接调用相机拍照
2. 从相册中选择
3. 从图库中选择
UIImagePickerController是系统提供的用于获取图片和视频的接口;
使用UIImagePickerController类获取图片和视频,它大致分为以下步骤:
1. 初始化UIImagePickerController类;
2. 设置UIImagePickerController实例的数据源类型(如下所述);
3. 设置代理;
4. 如果需要修改图片,请设置allowEditing = yes.
共有三种类型的数据源:
按如下所示复制代码:
枚举{
UIImagePickerControllerSourceTypePhotoLibrary,//来自画廊
UIImagePickerControllerSourceTypeCamera,//来自摄像机
UIImagePickerControllerSourceTypeSavedPhotosAlbum //来自相册
};
使用这些资源时,最好检查以下设备是否支持它;
按如下所示复制代码:
如果([UIImagePickerControllerisSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
NSLog(@“支持”);
}
如果([UIImagePickerControllerisSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])
{

NSLog(@“支持库”);
}
如果([UIImagePickerControllerisSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
NSLog(@“支持图片库”);
}
呼叫相机以获取资源
按如下所示复制代码:
-(无效)viewDidLoad {
[superviewDidLoad];
picker = [[UIImagePickerControlleralloc] init];
picker.view.backgroundColor = [UIColororangeColor];
UIImagePickerControllerSourceTypesourcheType = UIImagePickerControllerSourceTypeCamera;
picker.sourceType = sourcheType;
picker.delegate =自我;
picker.allowsEditing = YES;
}
以上只是UIImagePickerController及其属性的示例,需要图片时需要调用它.
按如下所示复制代码:
[selfpresentViewController: pickeranimated: YEScompletion: nil];
我们还需要一个代理来获取我们选择的图像
UIImagePickerControllerDelegate
代理中共有三种方法,其中一种已弃用,我们只需要使用其中两种
按如下所示复制代码:
-(无效)imagePickerController: (UIImagePickerController *)pickerdidFinishPickingMediaWithInfo: (NSDictionary
*)信息;
在用户选择时调用;

按如下所示复制代码:
-(void)imagePickerControllerDidCancel: (UIImagePickerController *)选择器;
在用户取消选择时调用;
按如下所示复制代码:
-(无效)imagePickerController: (UIImagePickerController *)选择器
didFinishPickingMediaWithInfo: (NSDictionary *)info;
所选信息在info中,而info是字典.
字典中的键:
NSString * constUIImagePickerControllerMediaType;指定用户选择的媒体类型(在文章末尾进行扩展)
NSString * constUIImagePickerControllerOriginalImage;原始图片
NSString * constUIImagePickerControllerEditedImage;修改后的图片
NSString * constUIImagePickerControllerCropRect;作物大小
NSString * constUIImagePickerControllerMediaURL;媒体网址
NSString * constUIImagePickerControllerReferenceURL;原始网址
NSString * constUIImagePickerControllerMediaMetadata;该值仅在数据源是摄像机时有效
获取最新图片
最近的要求要求我模仿微信聊天功能的最新图片.
首先讨论想法.
这个想法很简单. 当您单击“ +”号时,您可以获取相册列表并获取最新保存的图片. 根据图像保存时间,使用当前时间戳计算间隔. 为了确定是否是所需的时间间隔. (时间间隔自定义)
计算公式: 当前时间图片保存时间<=时间间隔
然后根据此想法开始编写类别.
这与ALAssetsLibrary的获取功能有关,因此请按照他的要求写一个类别.
但是该库在iOS9之后已经过时了,但仍被打包,然后将改编新的工具类.
按如下所示复制代码:
// ALAssetsLibrary + WJ.h
#import
@interfaceALAssetsLibrary(WJ)

/ **
*获取最新图片
*
* @ paramblock回调
* /
-(void)latestAsset: (void(^ _ Nullable)(ALAsset * _Nullableasset,NSError * _Nullableerror))块;
@end
// ALAssetsLibrary + WJ.m
#import“ ALAssetsLibrary + WJ.h”
@implementationALAssetsLibrary(WJ)
-(void)LatestAsset: (void(^)(ALAsset * _Nullable,NSError * _Nullable))块{
[selfenumerateGroupsWithTypes: ALAssetsGroupSavedPhotosusingBlock: ^(ALAssetsGroup * groupios 打开相册获取图片,BOOL * stop){
如果(组){
[groupsetAssetsFilter: [ALAssetsFilterallPhotos]];
[groupenumerateAssetsWithOptions: NSEnumerationReverse / *遍历方法* / usingBlock: ^(ALAsset *结果,NSUIntegerindex,BOOL *停止){
如果(结果){
如果(阻止){
阻止(结果,无);
}
*停止=是;
}
}];
*停止=是;
}
} failureBlock: ^(NSError *错误){
如果(错误){
如果(阻止){

阻止(无,错误);
}
}
}];
}
@end
PhotoKit已在iOS8中存在. 因此,将来,您可以直接使用用iOS8或更高版本编写的应用程序.
PhotoKit是一个简单实用的软件包. 有关详细的性能ios 打开相册获取图片,请参考参考中提供的链接.
按如下所示复制代码:
// PHAsset + WJ.h
#import <照片/Photos.h>
@interfacePHAsset(WJ)
/ **
*获取最新图片
* /
+(PHAsset *)LatestAsset;
@end
// PHAsset + WJ.m
#import“ PHAsset + WJ.h”
@implementationPHAsset(WJ)
+(PHAsset *)LatestAsset {
//获取所有资源的集合,并按资源创建时间排序
PHFetchOptions *选项= [[PHFetchOptionsalloc] init];
options.sortDescriptors = @ [[NSSortDescriptorsortDescriptorWithKey: @“ creationDate”升序: 否]];
PHFetchResult * assetFetchResults = [PHAssetfetchAssetsWithOptions: 选项];
返回[assetsFetchResultsfirstObject];
}
@end
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-162188-1.html
美国看不下去了