识别最近图片快捷发送思路以及核心代码

需求:最近添加图片的快捷提示,当用户点击扩展按钮(“+” 号按钮)时,进行图片快捷提示(类似于微信)

思路:用户点击“+”号按钮时,检索相册中 30s 内最新添加的图片并展示

核心代码:

#import <PhotosUI/PhotosUI.h>


- (void)getRecentlyAddedPhoto:(void (^)(UIImage * _Nullable image, NSDictionary * _Nullable info))resultHandler {
    // 获取相册
    // 这里的 subtype 可以传其他参数:比方说 PHAssetCollectionSubtypeSmartAlbumScreenshots 截图,这里用的是用户所有的图片资源
    PHFetchResult *collectionResult = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:nil];
    
    // 获取资源时的参数(与当前时间相差 30s 内的图片)
    PHFetchOptions *options = [[PHFetchOptions alloc] init];
    options.wantsIncrementalChangeDetails = YES;
    options.predicate = [NSPredicate predicateWithFormat:@"creationDate > %@", [[NSDate date] dateByAddingTimeInterval:(-30)]];
    // sortDescriptors:排序
    options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
    
    if (collectionResult.count > 0) {
        PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:[collectionResult firstObject] options:options];
        if (fetchResult.count > 0) {
            PHImageRequestOptions *requestOptions = [[PHImageRequestOptions alloc] init];
            // 让 requestImage... 系列的方法变成同步操作
            requestOptions.synchronous = YES;
            // 获取原图
            [[PHImageManager defaultManager] requestImageForAsset:[fetchResult firstObject] targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeAspectFit options:requestOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
                if (result) {
                    resultHandler(result, info);
                } else {
                    resultHandler(nil, nil);
                }
            }];
        }
        resultHandler(nil, nil);
    } else {
        resultHandler(nil, nil);
    }
}

相关属性

PHAssetCollectionType:
    PHAssetCollectionTypeAlbum          相册
    PHAssetCollectionTypeSmartAlbum     智能相册
    PHAssetCollectionTypeMoment         时刻
PHAssetCollectionSubtype:
常规的子类型
    PHAssetCollectionSubtypeAlbumRegular            常规的     
    PHAssetCollectionSubtypeAlbumSyncedEvent        使用 iTunes 同步操作过来的相册 
    PHAssetCollectionSubtypeAlbumSyncedFaces        使用 iTuens同步操作过来的人物相册
    PHAssetCollectionSubtypeAlbumSyncedAlbum        使用iTunes 同步的所有相册
    PHAssetCollectionSubtypeAlbumImported           从外界导入的相册

经分享的子类型
    PHAssetCollectionSubtypeAlbumMyPhotoStream      从相册分享得到
    PHAssetCollectionSubtypeAlbumCloudShared        从 cloud 分享得到
智能相册子类型
    PHAssetCollectionSubtypeSmartAlbumGeneric       通用的
    PHAssetCollectionSubtypeSmartAlbumPanoramas     全景
    PHAssetCollectionSubtypeSmartAlbumVideos        视屏
    PHAssetCollectionSubtypeSmartAlbumFavorites     收藏
    PHAssetCollectionSubtypeSmartAlbumTimelapses    延时视屏,也会在PHAssetCollectionSubtypeSmartAlbumVideos在出现
    PHAssetCollectionSubtypeSmartAlbumAllHidden     隐藏的
    PHAssetCollectionSubtypeSmartAlbumRecentlyAdded 最近添加
    PHAssetCollectionSubtypeSmartAlbumBursts        连拍 
    PHAssetCollectionSubtypeSmartAlbumSlomoVideos   Slomo是slow motion的缩写,高速摄影慢动作解析
    PHAssetCollectionSubtypeSmartAlbumUserLibrary   用户所有的资源
    PHAssetCollectionSubtypeSmartAlbumSelfPortraits 所有前置摄像头拍的照片和视屏
    PHAssetCollectionSubtypeSmartAlbumScreenshots   所有的截屏图
不关心子类型时的全部资源
    PHAssetCollectionSubtypeAny = NSIntegerMax

相关属性参考自:PhotoKit

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 吃货地图产品需求文档 V1.0-2015/03/30 1概述 1.1产品概述及目标 概述:“吃货地图”是一款基于i...
    michaelshan阅读 5,829评论 1 46
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,328评论 0 1
  • Web网站测试流程和方法(转载) 1测试流程与方法 1.1测试流程 进行正式测试之前,应先确定如何开展测试,不可盲...
    夏了夏夏夏天阅读 1,274评论 0 0
  • 在江夏,很少有人不知道花之都。 上世纪90年代,我出生于湖北省武汉市江夏区,又成长在江夏。那时,花之都是一个江夏的...
    瑞献四海阅读 696评论 3 3
  • 风亡小窝阅读 277评论 0 0