你的位置:首页 > 操作系统

[操作系统]用法简单的呈现一组图片的框架(高仿QQ/微信)


DEMO下载地址:http://www.code4app.com/thread-8612-1-1.html

 

什么地方用到这个框架

  • 主要用于社交app,用于呈现一组图片
  • 以下是各个流行社交app的部分截图

     



PYPhotosView框架的主要类PYPhotosView

[Objective-C] 查看源文件 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@interfacePYPhotosView : UIScrollView
 
/** 网络图片相册 */
@property(nonatomic, strong) NSArray*photos;
/** 本地相册图片数组 */
@property(nonatomic, strong) NSMutableArray*images;
/** 所有图片的状态 */
@property(nonatomic, assign) NSIntegerphotosState;
 
/** 图片间距(默认为5) */
@property(nonatomic, assign) CGFloat photoMargin;
/** 图片的宽高(正方形)默认为70 */
@property(nonatomic, assign) CGFloat photoWH;
/** 每行最多个数(默认为3) */
@property(nonatomic, assign) NSIntegerphotosMaxCol;
 
/** 快速创建photosView对象 */
+ (instancetype)photosView;
/** photos: 保存图片链接的数组 */
+ (instancetype)photosView:(NSArray*)photos;
 
/** 根据图片个数和图片状态自动计算出PYPhontosView的size */
- (CGSize)sizeWithPhotoCount:(NSInteger)count photosState:(NSInteger)state;
 
@end






如何使用PYPhotosView

  • 手动导入:
    • 将PYPhotosView文件夹中的所有文件拽入项目中
    • 导入主头文件[Objective-C] 查看源文件 复制代码
      ?
      1
      #import  "PYPhotosView.h"






具体使用(详情见示例程序中的PYExampleViewController)

  • 创建图片链接数组
  • 创建photosView对象
  • 添加对象

示例代码:
[Objective-C] 查看源文件 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
// 1.1 创建图片链接数组
NSMutableArray*imageUrls = [NSMutableArrayarray];
 
  for(inti = 0; i < 6; i++) {
      // 1.2 图片链接
      NSString*imageUrl = [NSStringstringWithFormat:@"https://github.com/iphone5solo/PYPhotosView/raw/master/images/IMG_02%02d.PNG", 25+i];
      // 1.3 添加图片链接
      [imageUrls addObject:imageUrl];
  }
 
  // 2. 创建一个photosView
  PYPhotosView *photosView = [PYPhotosView photosView:imageUrls];
 
  // 3. 添加photosView
  [self.view addSubview:photosView];










自定义photosView通过设置photosView的对象属性值即可修改

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

// 设置图片间距为10 
photosView.photoMargin = 10;

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

// 设置图片的宽(width)
photosView.photoWidth = 100;
// 设置图片的高(height)
photosView.photoHeight = 60;

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

// 设置图片最多列数
photosView.photosMaxCol = 6;