亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS多選單選相冊圖片

2019-11-14 18:16:21
字體:
來源:轉載
供稿:網友

之前做項目讓實現多選相冊的圖片,自己寫了一個demo一直保存在電腦上,今天下午發現電腦128G的容量已經快沒有了,準備清理電腦,所以把之前做的一些demo放在博客上,以后方便用。

1.首先準備3個圖片

2.定義單元格PhoCollectionViewCell

#import <UIKit/UIKit.h>typedef void(^SelectBtnClickBlock) (BOOL isSelect);@interface PhoCollectionViewCell : UICollectionViewCell@PRoperty (weak ,nonatomic)  IBOutlet  UIImageView *  imageView;@property (weak ,nonatomic)  IBOutlet  UIImageView *  selectImageView;@property (nonatomic,copy) SelectBtnClickBlock selectBtnClickBlock;- (IBAction)selectBtnClick:(id)sender;@property (weak, nonatomic) IBOutlet UIButton *selectBtn;@end
#import "PhoCollectionViewCell.h"@implementation PhoCollectionViewCell- (void)awakeFromNib {    // Initialization code    }- (IBAction)selectBtnClick:(id)sender {    UIButton *btn=(UIButton *)sender;     btn.selected=!btn.selected;    NSLog(@"%@",@"aaaa");      _selectBtnClickBlock(btn.selected);}@end

3.創建相片Model

#import <Foundation/Foundation.h>#import <AssetsLibrary/ALAssetsLibrary.h>@interface PhoModel : NSObject@property(nonatomic,strong) ALAsset *asset;@property (nonatomic,assign) BOOL isSelected;@end
#import "PhoModel.h"@implementation PhoModel@end

 

4.獲取相冊圖片顯示圖片

#import "ViewController.h"#import <AssetsLibrary/AssetsLibrary.h>#import "AppDelegate.h"#import "PhoModel.h"#import "PhoCollectionViewCell.h"#define applicationDelegate ((AppDelegate *)[UIApplication sharedApplication].delegate)static NSInteger count = 0;@interface ViewController (){    NSMutableArray *mutableAssets;}@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        //獲取相冊中的全部照片    [self getAllPictures];    [_collectionView registerNib: [UINib nibWithNibName:@"PhoCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"CollectionViewCell"];}//獲取相冊中的全部照片-(void)getAllPictures {    mutableAssets = [[NSMutableArray alloc]init];        NSMutableArray *assetURLDictionaries = [[NSMutableArray alloc] init];    NSMutableArray *assetGroups = [[NSMutableArray alloc] init];        __block NSMutableArray *tempMutableAssets = mutableAssets;    __block ViewController *tempSelf = self;    __block NSMutableArray *tempAssetGroups = assetGroups;        [ApplicationDelegate.library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop){        if (group != nil) {            count = [group numberOfAssets];            __block int groupNum = 0;            [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){                if(asset != nil) {                    ++ groupNum;                    if([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {                        [assetURLDictionaries addObject:[asset valueForProperty:ALAssetPropertyURLs]];                        NSURL *url= (NSURL*) [[asset defaultRepresentation]url];                        NSLog(@"%@,%@",[asset valueForProperty:ALAssetPropertyDate],url);                        //                        [UIImage imageWithCGImage:[[result defaultRepresentation] fullScreenImage]];//圖片//                        [UIImage imageWithCGImage:[result thumbnail]];    //縮略圖                                                PhoModel *phoModel=[[PhoModel alloc]init];                        phoModel.asset=asset;                        phoModel.isSelected=NO;                        [tempMutableAssets addObject:phoModel];                        if (tempMutableAssets.count == groupNum) {                            [tempSelf allPhotosCollected:tempMutableAssets];                        }                    }                }            }];            [tempAssetGroups addObject:group];        }    }failureBlock:^(NSError *error){        NSLog(@"There is an error");    }];}//所有asset-(void)allPhotosCollected:(NSMutableArray *)mutableAsset{    [self.collectionView reloadData];}#pragma mark -- UICollectionViewDataSource- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {    CGSize itemSize = CGSizeMake(([UIScreen mainScreen].bounds.size.width-15)/4.0, ([UIScreen mainScreen].bounds.size.width-30)/4.0);    return itemSize;}//定義展示的UICollectionViewCell的個數-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{    return mutableAssets.count+1;}//每個UICollectionView展示的內容-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{    static NSString * CellIdentifier = @"CollectionViewCell";    PhoCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];    if (indexPath.row==0) {        cell.imageView.image = [UIImage imageNamed:@"0.png"];        cell.selectImageView.hidden=YES;        cell.selectBtnClickBlock=^(BOOL isSelect)        {            NSLog(@"cell1 block");        };        return cell;    }           PhoModel *phoModel = mutableAssets[indexPath.row-1];        cell.imageView.image = [UIImage imageWithCGImage:[phoModel.asset thumbnail]];        if (phoModel.isSelected) {        cell.selectImageView.image=[UIImage imageNamed:@"2.png"];    }    else    {        cell.selectImageView.image=[UIImage imageNamed:@"1.png"];    }    cell.selectImageView.hidden=NO;    cell.selectBtn.selected=phoModel.isSelected;    cell.selectBtnClickBlock=^(BOOL isSelect)    {        //單選多選標記 false 單選 true 多選        BOOL issangal=false;        if (issangal) {            for (PhoModel *tmpPhotoModel in mutableAssets) {                tmpPhotoModel.isSelected = NO;            }        }        phoModel.isSelected=isSelect;        [_collectionView reloadData];    };        return cell;}- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {    NSLog(@"%ld",indexPath.row);}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end

5.效果

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品成人乱色一区二区| 久久久久久久久久国产精品| 中文字幕久精品免费视频| 国产精品自产拍在线观| 亚洲肉体裸体xxxx137| 日韩美女福利视频| 最新中文字幕亚洲| 国产欧美一区二区三区四区| 欧美日韩亚洲一区二| 91精品久久久久久久久久久| 日韩成人xxxx| 亚洲无线码在线一区观看| 国产在线观看精品一区二区三区| 日韩高清不卡av| 国产精品视频xxxx| 久久香蕉精品香蕉| 国产精品91久久久| 久久97久久97精品免视看| 亚洲精品自拍第一页| 久久成人精品一区二区三区| 欧美一乱一性一交一视频| 北条麻妃一区二区三区中文字幕| 日韩小视频网址| 日韩激情在线视频| 精品久久久久久| 国产性色av一区二区| 欧美视频不卡中文| 国产午夜精品久久久| 成人女保姆的销魂服务| 欧美精品午夜视频| 成人免费午夜电影| 国产91av在线| 亚洲福利在线看| 国产亚洲精品成人av久久ww| 亚洲男人天堂视频| 国产精品亚洲激情| 亚洲成人精品视频在线观看| 国产日韩精品综合网站| 亚洲免费电影一区| 午夜精品久久久久久久99热浪潮| 亚洲精品久久久久久久久| 国产精品日韩av| 亚洲伊人久久综合| 日本午夜在线亚洲.国产| 国产不卡一区二区在线播放| 欧美精品videosex性欧美| 国产午夜精品全部视频播放| xvideos亚洲人网站| 少妇av一区二区三区| 成人网页在线免费观看| 北条麻妃在线一区二区| 精品动漫一区二区| 国产日韩在线视频| 国产欧美亚洲视频| 亚洲自拍小视频免费观看| 国产成人亚洲综合青青| 97视频免费在线看| 国产亚洲精品va在线观看| 亚洲国产成人在线视频| 91精品国产色综合久久不卡98口| 中文字幕亚洲天堂| 日韩国产在线看| 爽爽爽爽爽爽爽成人免费观看| 亚洲性xxxx| 国产一区二区三区四区福利| 最近2019年中文视频免费在线观看| 国产成人福利视频| 亚洲欧美日韩区| 午夜精品久久久久久99热| 国产精品久久中文| 亚洲国产日韩欧美在线图片| 精品在线欧美视频| 欧美日韩亚洲天堂| 国产精品男人爽免费视频1| 日韩欧美成人精品| 亚洲免费一级电影| 国产精品www| 福利一区福利二区微拍刺激| 91精品国产自产91精品| 国产精品日韩欧美大师| 日韩精品在线看| 91国内精品久久| 91人人爽人人爽人人精88v| 韩国19禁主播vip福利视频| 在线播放日韩专区| 日本欧美精品在线| 亚洲精品自拍第一页| 在线中文字幕日韩| 美女视频黄免费的亚洲男人天堂| 亚洲人成77777在线观看网| 日韩免费在线看| 久久99亚洲精品| 亚洲男人的天堂在线播放| 国产亚洲免费的视频看| 中国china体内裑精亚洲片| 国模精品系列视频| 欧美日韩电影在线观看| 精品国产老师黑色丝袜高跟鞋| 久久人人看视频| 狠狠色狠色综合曰曰| 亚洲摸下面视频| 狠狠做深爱婷婷久久综合一区| 日本在线观看天堂男亚洲| 狠狠操狠狠色综合网| 亚洲www视频| 日韩av最新在线| 91精品国产自产在线老师啪| 92版电视剧仙鹤神针在线观看| 亚洲精品美女免费| 亚洲欧美国内爽妇网| 欧美专区在线视频| 国产精品一区二区三区久久久| 日韩欧美中文免费| 久久伊人精品天天| 亚洲精品一区二三区不卡| 亚洲免费视频一区二区| 国产精品69精品一区二区三区| 欧美日韩国产精品| 国产精品欧美在线| 亚洲第一色在线| 欧美成人第一页| 亚洲天堂影视av| 2018中文字幕一区二区三区| 91精品视频观看| 久久久久久噜噜噜久久久精品| 午夜精品一区二区三区视频免费看| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲色图13p| 亚洲人成电影网站色| 欧美一区三区三区高中清蜜桃| 91久久久亚洲精品| 精品无人区太爽高潮在线播放| 国产在线一区二区三区| 国产香蕉一区二区三区在线视频| 美女久久久久久久久久久| 欧美wwwwww| 日韩一二三在线视频播| 91夜夜揉人人捏人人添红杏| 91伊人影院在线播放| 91热精品视频| 久久久免费av| 国产成人福利网站| 久久久久亚洲精品国产| 精品无人区乱码1区2区3区在线| 一本大道亚洲视频| 亚洲国产精品一区二区三区| 色综合久久天天综线观看| 日韩欧美中文在线| 久久久久久亚洲精品| 久久久久久久久久久国产| 69久久夜色精品国产69| 久久免费视频网站| 亚洲视频在线免费看| 国产精品高潮粉嫩av| 在线播放精品一区二区三区| 午夜精品国产精品大乳美女| 在线a欧美视频| 岛国av在线不卡| 国产亚洲人成a一在线v站| 久久精品男人天堂| 自拍偷拍亚洲区| 成人免费观看网址| 亚洲a级在线播放观看| 91免费电影网站|