• Stars
    star
    128
  • Rank 281,044 (Top 6 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个基于Photos.framework的图片多选,模仿微信,还有很多不足,正在改进和优化

Swift版本: RITLPhotos-Swift

2018-05-18更新

依赖的库

pod 'RITLKit'
pod 'Masonry'

CocoaPod

pod 'RITLPhotos'
#import <RITLPhotos/RITLPhotos.h>

使用方法

RITLPhotosViewController *photoController = RITLPhotosViewController.photosViewController;
photoController.configuration.maxCount = 5;//最大的选择数目
photoController.configuration.containVideo = false;//选择类型,目前只选择图片不选择视频

photoController.photo_delegate = self;
photoController.thumbnailSize = self.assetSize;//缩略图的尺寸
photoController.defaultIdentifers = self.saveAssetIds;//记录已经选择过的资源

[self presentViewController:photoController animated:true completion:^{}];

回调方法

#pragma mark - RITLPhotosViewControllerDelegate
/**** 为了提高相关性能,如果用不到的代理方法,不需要多实现  ****/


/// 图片选择器消失的回调方法
- (void)photosViewControllerWillDismiss:(UIViewController *)viewController {
    NSLog(@"%@ is dismiss",viewController);
}


/**
 选中图片以及视频等资源的本地identifer
 可用于设置默认选好的资源
 
 @param viewController RITLPhotosViewController
 @param identifiers 选中资源的本地标志位
 */
- (void)photosViewController:(UIViewController *)viewController
            assetIdentifiers:(NSArray <NSString *> *)identifiers
{
    
}
/**
 选中图片以及视频等资源的默认缩略图
 根据thumbnailSize设置所得,如果thumbnailSize为.Zero,则不进行回调
 与是否原图无关
 
 @param viewController RITLPhotosViewController
 @param thumbnailImages 选中资源的缩略图
 @param infos 选中资源的缩略图的相关信息
 */
- (void)photosViewController:(UIViewController *)viewController thumbnailImages:(NSArray<UIImage *> *)thumbnailImages infos:(NSArray<NSDictionary *> *)infos
{
    self.assets = thumbnailImages;
    [self.collectionView reloadData];
    
    NSLog(@"%@",infos);
}
/**
 选中图片以及视频等资源的原比例图片
 适用于不使用缩略图,或者展示高清图片
 与是否原图无关
 
 @param viewController RITLPhotosViewController
 @param images 选中资源的原比例图
 @param infos 选中资源的原比例图的相关信息
 */
- (void)photosViewController:(UIViewController *)viewController images:(NSArray<UIImage *> *)images infos:(NSArray<NSDictionary *> *)infos
{
    //获得原比例的图片
}
/**
 选中图片以及视频等资源的数据
 根据是否选中原图所得
 如果为原图,则返回原图大小的数据
 如果不是原图,则返回原始比例的数据
 注: 不会返回thumbnailImages的数据大小
 
 @param viewController RITLPhotosViewController
 @param datas 选中资源的数据
 */
- (void)photosViewController:(UIViewController *)viewController
                       datas:(NSArray <NSData *> *)datas
{
    
}
/**
 选中图片以及视频等资源的源资源对象
 如果需要使用源资源对象进行相关操作,请实现该方法
 
 @param viewController RITLPhotosViewController
 @param assets 选中的源资源
 */
- (void)photosViewController:(UIViewController *)viewController
                      assets:(NSArray <PHAsset *> *)assets
{
    
}

更新日志

  • 2018-11-05 修复datas回调返回数据永远为空数组问题,新增代理- (void)photosViewControllerWillDismiss:(UIViewController *)viewController;
  • 2018-07-10 修复部分icloud图片获得失败的问题
  • 2018-06-26 修复部分系统加载bundle图片失败的问题
  • 2018-06-15 修复拒绝权限崩溃的问题
  • 2018-05-21 使用defaultIdentifers属性可以记录选中的资源,可通过代理回调获得,支持Pod
  • 2018-05-18 Version 2.0 增加了图片多选库中对Live以及Video的支持,增加了对顺序获取图片的支持
  • 2017-11-30 去除必须使用的Objective-C++模式,新增代理方法替代Block
  • 2017-05-19 Version 1.0
  • 2016-09-24 支持3D Touch
  • 2016-04-05 Version 0.1

待办清单

  • 支持拓展性的视图文字以及边框主题色
  • 支持图片按点击顺序排列
  • 支持拖动进行的排序
  • 支持CocoaPod
  • 支持3D Touch响应
  • 支持原图返回数据内存监控问题
  • 支持图片编辑功能
  • 支持图片裁剪功能
  • 支持相册变化的监听回调功能
  • 支持下滑返回手势功能

之前版本

  • 请前往version1.0分支获得之前版本的代码以及README.md

More Repositories

1

RITLWidgetDemo

The demo to learn the Today Extension in iOS
Objective-C
24
star
2

RITLLayerBorder

【Deprecated】为UIView追加选择指定边的border, 适配autoLayout
Objective-C
22
star
3

RITLContactManager

一个整合AddressBook.framework以及Contact.framework的获取通讯录的Demo,目前iOS9.0之前会有内存泄露,努力更正..
Objective-C
21
star
4

RITLPhotos_swift

The Swift5.0 verson of the RITLPhotos
Swift
19
star
5

RITLSimilarZHPullDownDemo

类似知乎上下滑动切换视图实现
Swift
18
star
6

YWebImage

设置网络图片实现本地缓存
Objective-C
9
star
7

RITLAddressBookDemo

通过AddressBook.framework简单获取联系人的各种属性
Objective-C
6
star
8

flutter_qdmetro

Cupertino风格模拟青岛地铁的部分简化界面(避免不必要的麻烦,不涉及加密等敏感数据的交互)
Dart
6
star
9

RITLKit

日常工作中积累的工具类、拓展类
Objective-C
5
star
10

TomCat

Objective-C
4
star
11

RITLJSCoreDemo

A demo to explain that how to use the JavaScriptCore in UIWebView or WKWebView
Swift
4
star
12

YAImagePickerView

使用AssetsLibrary.framework封装的多选图片Demo
Objective-C
4
star
13

YAddressBookUIDemo

在AddressBookDemo基础上使用AddressBook.framework进行手动添加联系人,使用AddressBookUI.framework系统控制器添加联系人
Objective-C
4
star
14

RITLPushNoticationDemo

A demo To learn UserNotifications and Extension .
Objective-C
3
star
15

RITLNetAddressPickerView

使用网络请求进行地址选择的,支持省,市,区(县)的层次选择
Objective-C
3
star
16

Carousel-objc

UIScrollView的轮播demo
Objective-C
2
star
17

RITLSimalilarScrollView

类似UC浏览器上方的滚动栏
Swift
2
star
18

YSinaNavigationBarDemo

响应TableView下拉设置NavigationBar的透明度
Swift
2
star
19

YAddressBookSortDemo

根据UILocalizedIndexedCollation对通讯录中的联系人进行分组的Demo
Objective-C
2
star
20

RITLApplePayTest

通过PassKit.framework练习Apple Pay
Objective-C
2
star
21

RITL3DTouchTest

3D Touch的基本操作
Objective-C
2
star
22

Swifter

用于自己的Swift学习,涉及其他会及时删除,请支持正版
Swift
1
star
23

UIStackVIewDemo

用于学习UIStackView的笔记
Objective-C
1
star
24

RITLSegmentBar

一款高度设置的指示器组件
Objective-C
1
star
25

RITLDoubleWave

iOS 双波浪动画-Swift版本,原作者博文以及地址请移步README,
Swift
1
star
26

flutter_ritl_alert

flutter项目使用到的与青岛地铁APP中的alertController
Dart
1
star
27

RITLAlertViewController

样式自定义的AlertController
Swift
1
star
28

UIButton-RITLExtension

封装了button改变状态的方法,一句话设置以及读取不同状态的属性
Objective-C
1
star
29

RITLViewFrame

便捷设置以及获取frame的相关属性
Objective-C
1
star
30

RITLCoderMakeDemo

A demo to make qrcode and analysize qrcode
Swift
1
star