MJPhotoBrowser的一些事一些情BUG有改了吗

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
有没有轻量级的PhotoBrowser框架,依赖的库最好只有SDWebImage,谢谢
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。PYPhotoBrowser(高仿QQ/微信的图片浏览器,支持缩略图和原图、多种手势)_IOS开发-织梦者
当前位置:&>&&>& > PYPhotoBrowser(高仿QQ/微信的图片浏览器,支持缩略图和原图、多种手势)
PYPhotoBrowser(高仿QQ/微信的图片浏览器,支持缩略图和原图、多种手势)
PYPhotoBrowser
Framework with a simple method of rendering images.
用法简单的呈现一组图片的框架。
Getting Started
Renderings【效果图】
Status 【支持哪些状态】
Layouts【支持哪些布局】
Gestures【支持哪些手势】
What place will use this framework【什么地方用到这个框架】
Dependency 【依赖哪些第三方框架】
Classes【PYPhotosView框架的主要类】
How to use【如何使用PYPhotosView】
Details 【具体使用(详情见示例程序PYPhotosViewExample)】
Custom【自定义photosView】
图片已发布(网络图片浏览、流水布局)
支持哪些状态
已发布(网络图片浏览)
支持哪些布局
流水布局 、 线性布局
支持哪些手势
单击 、双击 、捏合 、旋转、拖拽、侧滑
什么地方用到这个框架
主要用于社交app,用于呈现一组图片
以下是各个流行社交app的部分截图
依赖哪些第三方框架
图片浏览依赖框架
MBProgressHUD
SDWebImage
PYPhotoBrowser框架的主要类
PYPhotosView(快速使用)
@interface PYPhotosView : UIScrollView
/** 代理 */
@property (nonatomic, weak) id
/** 网络图片模型数组 */
@property (nonatomic, copy) NSArray *
/** 网络图片地址数组(缩略图) */
@property (nonatomic, copy) NSArray *thumbnailU
/** 网络图片地址数组(原图) */
@property (nonatomic, copy) NSArray *originalU
/** 本地相册图片数组(默认最多为九张,当传入图片数组长度超过九张时,取前九张) */
@property (nonatomic, strong) NSMutableArray *
/** 所有图片的状态(默认为已发布状态) */
@property (nonatomic, assign) PYPhotosViewState photosS
/** 图片布局(默认为流水布局) */
@property (nonatomic, assign) PYPhotosViewLayoutType layoutT
/** 图片分页指示类型(默认为pageControll。当图片超过九张,改为label显示) */
@property (nonatomic, assign) PYPhotosViewPageType pageT
/** 图片间距(默认为5) */
@property (nonatomic, assign) CGFloat photoM
/** 图片的宽 (默认为70) */
@property (nonatomic, assign) CGFloat photoW
/** 图片的高 (默认为70) */
@property (nonatomic, assign) CGFloat photoH
/** 每行最多个数(默认为3), 当图片布局为线性布局时,此设置失效 */
@property (nonatomic, assign) NSInteger photosMaxC
/** 当图片上传前,最多上传的张数,默认为9 */
@property (nonatomic, assign) NSInteger imagesMaxCountWhenWillC
/** 快速创建photosView对象 */
+ (instancetype)photosV
/** photos : 保存图片链接的数组 */
+ (instancetype)photosViewWithThumbnailUrls:(NSArray *)thumbnailUrls originalUrls:(NSArray *)originalU
/** images : 存储本地图片的数组 */
+ (instancetype)photosViewWithImages:(NSMutableArray *)
* thumbnailUrls : 保存图片(缩略图)链接的数组
* originalUrls : 保存图片(原图)链接的数组
* type : 布局类型(默认为流水布局)
+ (instancetype)photosViewWithThumbnailUrls:(NSArray *)thumbnailUrls originalUrls:(NSArray *)originalUrls layoutType:(PYPhotosViewLayoutType)
* thumbnailUrls : 保存图片(缩略图)链接的数组
* originalUrls : 保存图片(原图)链接的数组
* maxCol : 每行最多显示图片的个数
+ (instancetype)photosViewWithThumbnailUrls:(NSArray *)thumbnailUrls originalUrls:(NSArray *)originalUrls photosMaxCol:(NSInteger)maxC
/** 根据图片个数和图片状态自动计算出PYPhontosView的size */
- (CGSize)sizeWithPhotoCount:(NSInteger)count photosState:(NSInteger)
* 刷新图片(未发布)
* images : 新的图片数组
- (void)reloadDataWithImages:(NSMutableArray *)
PYPhotoBrowseView(自定义)
@protocol PYPhotoBrowseViewDelegate
* 图片浏览将要显示时调用
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseView willShowWithImages:(NSArray *)images index:(NSInteger)
* 图片浏览已经显示时调用
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseView didShowWithImages:(NSArray *)images index:(NSInteger)
* 图片浏览将要隐藏时调用
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseView willHiddenWithImages:(NSArray *)images index:(NSInteger)
* 图片浏览已经隐藏时调用
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseView didHiddenWithImages:(NSArray *)images index:(NSInteger)
* 图片单击时调用
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseView didSingleClickedImage:(UIImage *)image index:(NSInteger)
* 图片长按时调用
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseView didLongPressImage:(UIImage *)image index:(NSInteger)
@protocol PYPhotoBrowseViewDataSource
/** 返回将要浏览的图片(UIImage)数组 */
- (NSArray *)imagesForB
/** 返回默认显示图片的索引(默认为0) */
- (NSInteger)currentI
/** 默认显示图片相对于主窗口的位置 */
- (CGRect)frameFormW
/** 消失回到相对于住窗口的指定位置 */
- (CGRect)frameToW
@interface PYPhotoBrowseView
: UIWindow
/** 代理 */
@property (nonatomic, weak) id
/** 数据源代理 */
@property (nonatomic, weak) id dataS
/** 用来浏览的图片(UIImage)数组 */
@property (nonatomic, copy) NSArray *
/** 用来记录当前下标 */
@property (nonatomic, assign) NSInteger currentI
* 浏览图片
如何使用PYPhotosView
使用Cocoapods:
pod "PYPhotosView"
导入主头文件#import
手动导入:
将PYPhotosView文件夹中的所有文件拽入项目中
导入主头文件#import "PYPhotosView.h"
使用注意:如果项目本来就有依赖的第三方框架:MBProgressHUD、SDWebImage就不必重复导入, 如果没有,选择Dependency文件夹中,项目不存在的框架拽入项目。
具体使用(详情见示例程序PYPhotosViewExample)
已发布(网络图片浏览)
示例代码:
// 1. 创建缩略图图片链接数组
NSMutableArray *thumbnailImageUrls = [NSMutableArray array];
// 添加图片(缩略图)链接
[thumbnailImageUrls addObject:@"http://ww3.sinaimg.cn/thumbnail/006ka0Iygw1f6bqm7zukpj30g60kzdi2.jpg"];
[thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/61b6bqb1bfd2j20b4095dfy.jpg"];
[thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/54477ddfgw1f6bqkbanqoj20ku0rsn4d.jpg"];
[thumbnailImageUrls addObject:@"http://ww4.sinaimg.cn/thumbnail/006ka0Iygw1f6b8gpwr2tj30bc0bqmyz.jpg"];
[thumbnailImageUrls addObject:@"http://ww2.sinaimg.cn/thumbnail/9c2b5f31jw1f6bqtinmpyj20dw0ae76e.jpg"];
[thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/536ebqdj3lpjj20va134ana.jpg"];
[thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/75b1a75fjw1f6bqn35ij6j20ck0g8jtf.jpg"];
[thumbnailImageUrls addObject:@"http://ww2.sinaimg.cn/thumbnail/005NFHyQgw1f6bn8bha0eg308w0gib2d.gif"];
[thumbnailImageUrls addObject:@"http://ww1.sinaimg.cn/thumbnail/86afb21egw1f6bq3lq0itj20gg0c2myt.jpg"];
// 1.2 创建原图图片链接数组
NSMutableArray *originalImageUrls = [NSMutableArray array];
// 添加图片(原图)链接
[originalImageUrls addObject:@"http://ww3.sinaimg.cn/large/006ka0Iygw1f6bqm7zukpj30g60kzdi2.jpg"];
[originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/61b6bqb1bfd2j20b4095dfy.jpg"];
[originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/54477ddfgw1f6bqkbanqoj20ku0rsn4d.jpg"];
[originalImageUrls addObject:@"http://ww4.sinaimg.cn/large/006ka0Iygw1f6b8gpwr2tj30bc0bqmyz.jpg"];
[originalImageUrls addObject:@"http://ww2.sinaimg.cn/large/9c2b5f31jw1f6bqtinmpyj20dw0ae76e.jpg"];
[originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/536ebqdj3lpjj20va134ana.jpg"];
[originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/75b1a75fjw1f6bqn35ij6j20ck0g8jtf.jpg"];
[originalImageUrls addObject:@"http://ww2.sinaimg.cn/large/005NFHyQgw1f6bn8bha0eg308w0gib2d.gif"];
[originalImageUrls addObject:@"http://ww1.sinaimg.cn/large/86afb21egw1f6bq3lq0itj20gg0c2myt.jpg"];
// 2. 创建一个photosView
PYPhotosView *photosView = [PYPhotosView photosViewWithThumbnailUrls:thumbnailImageUrls originalUrls:originalImageUrls];
// 3. 添加photosView
[self.view addSubview:photosView];
示例代码:
// 1. 创建本地图片数组
NSMutableArray *imagesM = [NSMutableArray array];
for (int i = 0; i < arc4random_uniform(4) + 1; i++) {
[imagesM addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%02d", i + 1]]];
// 2.1 设置本地图片
PYPhotosView *photosView = [PYPhotosView photosViewWithImages:imagesM];
// 3. 设置代理
photosView.delegate =
// 4. 添加photosView
[self.view addSubview:photosView];
自定义图片浏览(使用PYPhotoBrowseView类)
示例代码:
// 1.创建自己定义的browseView
PYPhotoBrowseView *browseView = [[PYPhotoBrowseView alloc] init];
// 2.设置数据源和代理并实现数据源和代理方法
browseView.dataSource =
browseView.delegate =
// 3.显示(浏览)
[browseView show];
// 实现数据源方法
#pragma mark - PYPhotoBrowseViewDataSource
// 返回将要浏览的图片(UIImage)数组
- (NSArray *)imagesForBrowse
NSMutableArray *imagesM = [NSMutableArray array];
for (int i = 0; i < 6 + 1; i++) {
[imagesM addObject:[UIImage imageNamed:[NSString
stringWithFormat:@"%02d", i + 1]]];
return imagesM;
// 返回默认显示图片的下标(默认为0)
- (NSInteger)currentIndex
// 返回从窗口的哪个位置开始显示(注意:frame是相当于window)
- (CGRect)frameFormWindow
return CGRectZ
// 返回消失到窗口的哪个位置(注意:frame是相当于window)
- (CGRect)frameToWindow
return CGRectMake(100, 300, 200, 200);
// 实现代理方法
#pragma mark PYPhotoBrowseViewDelegate
- (void)photoBrowseView:(PYPhotoBrowseView *)photoBrowseView didSingleClickedImage:(UIImage *)image index:(NSInteger)index
NSLog(@"图片单击时调用");
// 关闭浏览
[photoBrowseView hidden];
自定义photosView
通过设置photosView的对象属性值即可修改
设置布局类型(默认为流水布局)
// 设置布局为线性布局
photosView.layoutType = PYPhotosViewLayoutTypeL
设置分页指示类型(默认为pageControll指示器)
// 设置指示类型为文本指示
photosView.pageType = PYPhotosViewPageTypeL
设置图片间距(默认为5)
// 设置图片间距为10
photosView.photoMargin = 10;
设置图片大小(默认70*70)
// 设置图片的宽(width)
photosView.photoWidth = 100;
// 设置图片的高(height)
photosView.photoHeight = 60;
设置每行图片最多个数(默认为3个)
// 设置图片最多列数
photosView.photosMaxCol = 6;
设置图片上传前,最多上传的张数(默认为9)
// 设置图片最多上传的张数
photosView.imagesMaxCountWhenWillCompose = 15;
如果您在使用过程中有任何问题,欢迎直接加我QQ:联系,很乐意为您解答任何相关问题!
与其给我点star,不如向我狠狠地抛来一个BUG!
如果感兴趣的小伙伴想要参与这个项目的维护,可以随时联系我或者直接pull request!
如果您想要更多的接口来自定义,欢迎issue me!我会根据大家的需求提供更多的接口!
以上就是对PYPhotoBrowser(高仿QQ/微信的图片,支持缩略图和原图、多种手势)的相关介绍,希望对您学习ios有所帮助,感谢您关注织梦者!
这些内容可能对你也有帮助
更多可查看IOS开发列表页。
猜您也会喜欢这些文章他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Access denied | cocoapods.org used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (cocoapods.org) has banned your access based on your browser's signature (3ed78-ua98).Access denied | hearrain.com used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (hearrain.com) has banned your access based on your browser's signature (3eb6d5a-ua98).}

我要回帖

更多关于 一些乱改成语的广告 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信