從相冊(cè)中選取照片

1、選擇單張照片
a. UIImagePickerController (系統(tǒng)自帶選擇界面)
b. AssetsLibrary框架 (自己創(chuàng)建選擇界面)
c. Photos框架(自己創(chuàng)建選擇界面)

2富雅、選擇多張照片
a. AssetsLibrary框架 (自己創(chuàng)建選擇界面)
b. Photos框架(自己創(chuàng)建選擇界面)
c. 第三方庫 例如CTAssetsPickerController

第三方庫CTAssetsPickerController多選照片示例

// 初始化配置
CTAssetsPickerController *picker = [[CTAssetsPickerController alloc] init];
picker.delegate = self;
picker.showsEmptyAlbums = NO; // 不顯示空的相冊(cè)
picker.showsSelectionIndex = YES; // 在選中的照片右下角顯示數(shù)字
[self presentViewController:picker animated:YES completion:nil];

代理方法

/**
 *  相片選擇完成后點(diǎn)擊右上角【done】后調(diào)用
 *
 *  @param picker picker控制器
 *  @param assets 被選中的照片
 */
- (void)assetsPickerController:(CTAssetsPickerController *)picker didFinishPickingAssets:(NSArray<PHAsset *> *)assets
{
    // 返回
    [picker dismissViewControllerAnimated:YES completion:nil];
    
    // 遍歷每張照片
    for (NSInteger i = 0; i < assets.count; i++) {
        PHAsset *asset = assets[i];
        NSInteger scale = [UIScreen mainScreen].scale;  // 屏幕比例
        CGSize size = CGSizeMake(asset.pixelWidth / scale, asset.pixelHeight / scale);
        
        // 抓取圖片需要配置的參數(shù)
        PHImageRequestOptions *requestOptions = [[PHImageRequestOptions alloc] init];
        requestOptions.resizeMode   = PHImageRequestOptionsResizeModeExact;
        requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
        
        [[PHImageManager defaultManager] requestImageForAsset:asset
                                                   targetSize:size
                                                  contentMode:PHImageContentModeAspectFill
                                                      options:requestOptions
                                                resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
                                                    // 將抓取到的圖片顯示到imageView上
                                                    UIImageView *imageView = [[UIImageView alloc] init];
                                                    imageView.image = result;
                                                    [self.view addSubview:imageView];
                                                    imageView.frame = CGRectMake((i % 3) * (100 + 10), (i / 3) * (100 + 10), 100, 100);
                                                }];
    }
}

/**
 *  設(shè)置選取照片的數(shù)量
 *
 *  @param picker picker控制器
 *  @param asset  被選中的照片
 *
 *  @return 能否被選中
 */
- (BOOL)assetsPickerController:(CTAssetsPickerController *)picker shouldSelectAsset:(PHAsset *)asset
{
    NSUInteger max = 9;
    
    if (picker.selectedAssets.count < max) return YES;
    
    // 超過9張彈出告警嘱朽,并且不允許用戶選中照片
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"注意" message:@"最多只能選擇9張" preferredStyle:UIAlertControllerStyleAlert];
    [alert addAction:[UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:nil]];
    [picker presentViewController:alert animated:YES completion:nil];
    return NO;
}
演示效果.gif

注意:默認(rèn)CTAssetsPickerController彈出的選擇界面是英文的校焦,該庫已經(jīng)做好了本地化處理,只需要修改配置即可制動(dòng)漢化

1点寥、將IOS系統(tǒng)語言設(shè)置成簡體中文;
2、在項(xiàng)目中按如下配置即可,后面的數(shù)字為2files localized陈轿,如果顯示0刪除重新添加即可;

本地化配置.png
設(shè)置完成后效果.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市秦忿,隨后出現(xiàn)的幾起案子麦射,更是在濱河造成了極大的恐慌,老刑警劉巖灯谣,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潜秋,死亡現(xiàn)場離奇詭異,居然都是意外死亡胎许,警方通過查閱死者的電腦和手機(jī)峻呛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辜窑,“玉大人钩述,你說我怎么就攤上這事∧滤椋” “怎么了牙勘?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長所禀。 經(jīng)常有香客問我方面,道長放钦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任葡幸,我火速辦了婚禮最筒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蔚叨。我一直安慰自己床蜘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布蔑水。 她就那樣靜靜地躺著邢锯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搀别。 梳的紋絲不亂的頭發(fā)上丹擎,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音歇父,去河邊找鬼蒂培。 笑死,一個(gè)胖子當(dāng)著我的面吹牛榜苫,可吹牛的內(nèi)容都是我干的护戳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼垂睬,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼媳荒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起驹饺,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤钳枕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后赏壹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鱼炒,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年蝌借,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了田柔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骨望,死狀恐怖硬爆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情擎鸠,我是刑警寧澤缀磕,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響袜蚕,放射性物質(zhì)發(fā)生泄漏糟把。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一牲剃、第九天 我趴在偏房一處隱蔽的房頂上張望遣疯。 院中可真熱鬧,春花似錦凿傅、人聲如沸缠犀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辨液。三九已至,卻和暖如春箱残,著一層夾襖步出監(jiān)牢的瞬間滔迈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工被辑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留燎悍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓盼理,卻偏偏與公主長得像谈山,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子榜揖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 最近項(xiàng)目在做一個(gè)功能:就是需要從用戶選擇頭像跳轉(zhuǎn)到相冊(cè)選擇圖片勾哩,這應(yīng)該是一個(gè)很簡單的需求抗蠢,但是在網(wǎng)上搜了一下有好多...
    一本未寫完的書閱讀 7,644評(píng)論 0 10
  • 在上一篇的基礎(chǔ)上增加從相冊(cè)中選取的功能举哟,增加一個(gè)按鈕的點(diǎn)擊事件: 在點(diǎn)擊事件中進(jìn)行了一個(gè)運(yùn)行時(shí)權(quán)限處理,動(dòng)態(tài)的申請(qǐng)...
    gogoingmonkey閱讀 677評(píng)論 0 1
  • 通常繪本是這樣子用的: 孩子:媽媽,你給我講吧秽褒。 媽媽:講哪本壶硅? 孩子:這本。 媽媽:好销斟。(開始讀題目庐椒,從第一頁開...
    陪娃跑馬拉松閱讀 666評(píng)論 1 3
  • 小孩子在墻內(nèi)受到著保護(hù),避免被外界傷害蚂踊,玩耍的姿態(tài)舉著大旗约谈,太陽表情嚴(yán)肅,仿佛很不放心,對(duì)孩子的表現(xiàn)謹(jǐn)慎樂觀棱诱,可以...
    回老家養(yǎng)貓閱讀 152評(píng)論 0 0
  • 玉蘭油上個(gè)世紀(jì)50年代誕生于英國后泼橘,迅速成為英國第一護(hù)膚品牌,1989年進(jìn)入中國迈勋,此后連續(xù)十多年蟬聯(lián)"最受歡迎"品...
    童桂林閱讀 2,074評(píng)論 0 1