登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

PYPhotosView 用法简单的呈现一组图片的框架(高仿QQ/微信)

来自: iphone5solo 分类: iOS精品源码 上传时间: 2016-6-4 11:15:10
Tag:相册 图片 photos PYPhotosView 相册框架

项目介绍:

PYPhotoView  https://github.com/iphone5solo/PYPhotosView
  • Framework with a simple method of rendering images
  • 用法简单的呈现一组图片的框架



Contents
  • 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
  • 视频播放依赖框架/文件
    • ASIHTTPRequest2
    • HttpServer
    • Reachability2.0
    • libz.tbd


PYPhotosView框架的主要类

PYPhotosView
[Objective-C] 查看源文件 复制代码
@interface PYPhotosView : UIScrollView

/** 代理 */
@property (nonatomic, weak) id<PYPhotosViewDelegate> delegate;

/** 网络图片相册 */
@property (nonatomic, strong) NSArray *photos;
/** 本地相册图片数组(默认最多为九张,当传入图片数组长度超过九张时,取前九张) */
@property (nonatomic, strong) NSMutableArray *images;
/** 视频链接(视频来自网络) **/
@property (nonatomic, copy) NSString *movieNetworkUrl;
/** 本地视频地址(带有文件类型后缀) */
@property (nonatomic, copy) NSString *movieLocalUrl;

/** 所有图片的状态(默认为已发布状态) */
@property (nonatomic, assign) PYPhotosViewState photosState;
/** 图片布局(默认为流水布局) */
@property (nonatomic, assign) PYPhotosViewLayoutType layoutType;
/** 图片分页指示类型(默认为pageControll。当图片超过九张,改为label显示) */
@property (nonatomic, assign) PYPhotosViewPageType pageType;

/** 图片间距(默认为5) */
@property (nonatomic, assign) CGFloat photoMargin;
/** 图片的宽 (默认为70) */
@property (nonatomic, assign) CGFloat photoWidth;
/** 图片的高 (默认为70) */
@property (nonatomic, assign) CGFloat photoHeight;

/** 每行最多个数(默认为3), 当图片布局为线性布局时,此设置失效 */
@property (nonatomic, assign) NSInteger photosMaxCol;
/** 当图片上传前,最多上传的张数,默认为9 */
@property (nonatomic, assign) NSInteger imagesMaxCountWhenWillCompose;

/** 快速创建photosView对象 */
+ (instancetype)photosView;
/** photos : 保存图片链接的数组 */
+ (instancetype)photosViewWithPhotos:(NSArray *)photos;
/** images : 存储本地图片的数组 */
+ (instancetype)photosViewWithImages:(NSMutableArray *)images;

/**
 * photos : 保存图片链接的数组
 * type : 布局类型(默认为流水布局)
 */
+ (instancetype)photosView:(NSArray *)photos layoutType:(PYPhotosViewLayoutType)type;

/** 
 * photos : 保存图片链接的数组
 * maxCol : 每行最多显示图片的个数
 */
+ (instancetype)photosView:(NSArray *)photos photosMaxCol:(NSInteger)maxCol;

/** 根据图片个数和图片状态自动计算出PYPhontosView的size */
- (CGSize)sizeWithPhotoCount:(NSInteger)count photosState:(NSInteger)state;

/**
 * 刷新图片(未发布)
 * images : 新的图片数组
 */
- (void)reloadDataWithImages:(NSMutableArray *)images;

@end





如何使用PYPhotosView

    • 使用Cocoapods:
      • pod " PYPhotosView"
      • 导入主头文件#import < YPhotosView.h>
    • 手动导入:
      • 将PYPhotosView文件夹中的所有文件拽入项目中
      • 导入主头文件#import " PYPhotosView.h"
      • 使用注意:如果项目本来就有依赖的第三方框架:MBProgressHUD(用于图片浏览、发布)、SDWebImage(用于图片浏览、发布)、ASIHTTPRequest2(用于视频播放、缓存)、HttpServer(用于视频播放、缓存)、Reachability2(用于视频播放、缓存),就不必重复导入, 如果没有,选择Dependency文件夹中,项目不存在的框架拽入项目。如果用到视频播放需要导入系统文件libz.tdb。


具体使用(详情见示例程序PYPhotosViewExample)
  • 创建图片链接数组
  • 创建photosView对象
  • 添加对象


  • 已发布(网络图片浏览)

示例代码:
[Objective-C] 查看源文件 复制代码
// 1.1 创建图片链接数组
NSMutableArray *imageUrls = [NSMutableArray array];

  for (int i = 0; i < 9; i++) {
      // 1.2 图片链接
      NSString *imageUrl = [NSString stringWithFormat:@"https://github.com/iphone5solo/learngit/raw/master/imagesForPhotosView/image%02d.jpg", i + 1];
      // 1.3 添加图片链接
      [imageUrls addObject:imageUrl];
  }

  // 2. 创建一个photosView
  PYPhotosView *photosView = [PYPhotosView photosViewWithPhotos:imageUrls];

  // 3. 添加photosView
  [self.view addSubview:photosView];



  • 未发布(本地图片上传\发布\预览)

示例代码:
[Objective-C] 查看源文件 复制代码
    // 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 = self;

    // 4. 添加photosView
    [self.view addSubview:photosView];

  • 视频播放
    示例代码


[Objective-C] 查看源文件 复制代码
    // 1. 创建视频播放的photosView
    PYPhotosView *moviePhotosView = [PYPhotosView photosView];

    // 2. 设置视频的网络链接
    moviePhotosView.movieNetworkUrl = @"http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4";

    // 3. 添加photosView
    [self.view addSubview:moviePhotosView];



自定义photosView
通过设置photosView的对象属性值即可修改
  • 设置分页指示类型(默认为pageControll指示器)
[Objective-C] 查看源文件 复制代码
// 设置指示类型为文本指示
photosView.pageType = PYPhotosViewPageTypeLabel;



  • 设置图片间距(默认为5)

[Objective-C] 查看源文件 复制代码
// 设置图片间距为10
photosView.photoMargin = 10;


  • 设置图片大小(默认70*70)

[Objective-C] 查看源文件 复制代码
// 设置图片的宽(width)
photosView.photoWidth = 100;
// 设置图片的高(height)
photosView.photoHeight = 60;


  • 设置每行图片最多个数(默认为3个)

[Objective-C] 查看源文件 复制代码
// 设置图片最多列数
photosView.photosMaxCol = 6;


  • 设置图片上传前,最多上传的张数(默认为9)

[Objective-C] 查看源文件 复制代码
photosView.imagesMaxCountWhenWillCompose = 15;


期待
  • 如果在使用过程中遇到BUG,希望您呢个Issues我,谢谢(或者尝试下载最新的框架代码看看BUG修复没有)
  • 如果在使用过程中发现功能不够用,希望你能Issues我,我非常想为这个框架增加更多好用的功能,谢谢
  • 如果你想为PYPhotosView输出代码,请拼命Pull Requests我





DEMO直接下载:



相关源码推荐:

我来说两句
*滑动验证:
所有评论(258)
liujinfeng 2016-6-6 10:48:46
我只是路过打酱油的。
回复
贱精先生丶 2016-6-6 10:59:42
感谢分享,Code4App有你更精彩
回复
王颖博 2016-6-6 12:59:43
感谢分享,Code4App有你更精彩
回复
iphone5solo 2016-6-6 13:26:12
liujinfeng 发表于 2016-6-6 10:48
我只是路过打酱油的。

https://github.com/iphone5solo/PYPhotosView 路过的时候帮我上github上点点右上角的star
回复
zb_236 2016-6-6 15:03:37
精华内容,楼主V5!
回复
zyropi 2016-6-6 15:57:40
我只是路过打酱油的。
回复
iphone5solo 2016-6-6 17:36:15
zyropi 发表于 2016-6-6 15:57
我只是路过打酱油的。

https://github.com/iphone5solo/PYPhotosView 路过的时候帮我上github上点点右上角的star
回复
iphone5solo 2016-6-6 17:36:52
zb_236 发表于 2016-6-6 15:03
精华内容,楼主V5!

https://github.com/iphone5solo/PYPhotosView 觉得好用的话就上github上点点右上角的star
回复
2934525789 2016-6-7 09:22:53
我只是路过打酱油的。
回复
提取码:  下载次数:154 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
5072 3 154
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表