• Stars
    star
    1,575
  • Rank 29,719 (Top 0.6 %)
  • Language
    Objective-C
  • Created over 9 years ago
  • Updated about 8 years ago

Reviews

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

Repository Details

快速集成高性能照片浏览器,支持本地及网络相册

从Code4App 过来的朋友,请查看并点击收藏信息公告牌


照片浏览器已经大更新(请关注信息公告牌

敬呈:Swift完美版,大量听取OC版用户心声,呕心沥血打造更强大更好用更适合你的照片浏览器!!!

https://github.com/nsdictionary/PhotoBrowser/




Charlin出框架的目标:简单、易用、实用、高度封装、绝对解耦!


CorePhotoBroswerVC 2.0版本

快速集成高性能照片浏览器,支持本地及网络相册!


框架说明 DESC

.本框架是全新原创。本版本是2.0版本,此框架费时大概30天左右了,还在不断完善中,而且还有很多小细节需要处理,如果你在使用中发现bug,请加群@我,我会尽快修改。

.如果你在示例程序中,加载网络图片,你会发现图片显示有点乱,因为缩略图我是使用的是本地图片,所以正式使用的时候是不会有问题的。

.本框架包含了很多本地图片以及gif示例演示图片,所以包有点大,大概50MB左右,真正框架很小。请放心使用。

.再次申明,本版本还有很多地方需要完善,后续会继续更新!谢谢!



2.0版本特性 FEATURE

全新2.0版本,主要添加了众多切换方式,以及多种切换效果,供大家任意选取,请看Charlin给你展示:


Push方式展示(图片较大,请耐心等待)

image


modal方式展示(图片较大,请耐心等待)

image


transition方式展示(图片较大,请耐心等待)

image


zoom方式展示(图片较大,请耐心等待)

image


后期会继续增加一个展示方式,请期待!!!

细节说明:

zoom方式下,有非常多的细节,这里截图说明一二

如果你在放大图片的情况下,直接关闭相册浏览器,则框架会做一个连续动画(图片较大,请耐心等待)

image

如果相册浏览器退出时对应图片超出屏幕之外,此时会以另外一种动画方式展示(图片较大,请耐心等待)

image

使用示例 EXAMPLE

/*
 *  本地图片展示
 */
-(void)localImageShow:(NSUInteger)index{
    
    //避免循环引用
    __weak typeof(self) weakSelf=self;

    [PhotoBroswerVC show:self type:PhotoBroswerVCTypeZoom index:index photoModelBlock:^NSArray *{
    
    NSArray *localImages = weakSelf.images;
    
    NSMutableArray *modelsM = [NSMutableArray arrayWithCapacity:localImages.count];
    for (NSUInteger i = 0; i< localImages.count; i++) {
        
        PhotoModel *pbModel=[[PhotoModel alloc] init];
        pbModel.mid = i + 1;
        pbModel.title = [NSString stringWithFormat:@"这是标题%@",@(i+1)];
        pbModel.desc = [NSString stringWithFormat:@"我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字%@",@(i+1)];
        pbModel.image = localImages[i];
        
        //源frame
        UIImageView *imageV =(UIImageView *) weakSelf.contentView.subviews[i];
        pbModel.sourceImageView = imageV;
        
        [modelsM addObject:pbModel];
    }
    
    return modelsM;
    }];
}


/*
 *  展示网络图片
 */
-(void)networkImageShow:(NSUInteger)index{
    
    //避免循环引用
    __weak typeof(self) weakSelf=self;

    [PhotoBroswerVC show:self type:PhotoBroswerVCTypeZoom index:index photoModelBlock:^NSArray *{
    
    
    NSArray *networkImages=@[
                      @"http://www.netbian.com/d/file/20150519/f2897426d8747f2704f3d1e4c2e33fc2.jpg",
                      @"http://www.netbian.com/d/file/20130502/701d50ab1c8ca5b5a7515b0098b7c3f3.jpg",
                      @"http://www.netbian.com/d/file/20110418/48d30d13ae088fd80fde8b4f6f4e73f9.jpg",
                      @"http://www.netbian.com/d/file/20150318/869f76bbd095942d8ca03ad4ad45fc80.jpg",
                      @"http://www.netbian.com/d/file/20110424/b69ac12af595efc2473a93bc26c276b2.jpg",
                      
                      @"http://www.netbian.com/d/file/20140522/3e939daa0343d438195b710902590ea0.jpg",
                      
                      @"http://www.netbian.com/d/file/20141018/7ccbfeb9f47a729ffd6ac45115a647a3.jpg",
                      
                      @"http://www.netbian.com/d/file/20140724/fefe4f48b5563da35ff3e5b6aa091af4.jpg",
                      
                      @"http://www.netbian.com/d/file/20140529/95e170155a843061397b4bbcb1cefc50.jpg"
                      ];
    
    NSMutableArray *modelsM = [NSMutableArray arrayWithCapacity:networkImages.count];
    for (NSUInteger i = 0; i< networkImages.count; i++) {
        
        PhotoModel *pbModel=[[PhotoModel alloc] init];
        pbModel.mid = i + 1;
        pbModel.title = [NSString stringWithFormat:@"这是标题%@",@(i+1)];
        pbModel.desc = [NSString stringWithFormat:@"我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字%@",@(i+1)];
        pbModel.image_HD_U = networkImages[i];
        
        //源frame
        UIImageView *imageV =(UIImageView *) weakSelf.contentView.subviews[i];
        pbModel.sourceImageView = imageV;
        
        [modelsM addObject:pbModel];
    }
    
    return modelsM;
}];

}




以下是1.0版本说明

写在之前 FIRST

官人要是觉得本框架还不错,请支持我,支持码农的无偿付出!不用给钱,右上角star或者fork一下就可以,谢谢你的支持!
本框架主要目标是快速集成,目前,照片浏览器太多了,好用的还没多少,
MJ有一个不错,可惜年代久远,bug太多,而且长久没有维护更新,其他框架大多使用复杂,难以自定义。

特别说明 SPECIAL

本框架制作细节太多了,考虑的问题极多,绝对不是简单的scrollView设置一下paginEnable就可以这么简单,目前是直接push版本(高仿网易新闻),后续会增加frame放大版本(仿新浪微博及微信朋友圈照片浏览器)。

精彩截图 SCREEN(动态图片较大,请耐心等待)

展示网络图片相册

image

展示本地图片相册

image

网络或者本地图片保存到手机系统相册

image



框架特性 FRATURE

.ios版本兼容ios 7.0及以上.
.高仿网易新闻,后期将加入仿微信及新浪微博。
.xib定制界面,适配所有屏幕,同时方便你自定义你的功能,你想增加删除控件非常方便。
.好看的进度指示器,占位图片及HUD集成。
.各种手势处理,含显示隐藏界面信息,导航条,双击放大,双指捏合缩放。
.加入了比较fastion的图片间距,每页图片之前会有一个间距,这样几页图片不会粘在一起,更加美观(网易居然都没加)。
.图片保存系统相册功能,及保存过的图片不会重复保存(我试过新浪微博会重复保存)。
.任意图片尺寸能够以最合理的方式展示,含复杂的图片frame计算。
.支持本地图片展示、支持网络图片展示,支持指定index展示(从第index张展示,不一定是第0张)。
.修复了双击放大可能后位置有点偏移的bug。
.高性能,使用tableView一样的cell缓存池重用机制,性能极佳(重用带来了若干bug,目前已经修复,可能还有,请查看默认log地内存址)。
.后期将加入比较帅气的frame放大功能,敬请期待!!!!!!



心声 SAY

此版本最开始是使用ColletionView来做的,后面在collectionView的cell里面增加scrollView会出现ios7下乱跳的bug,无法解决,后来只有换成scrollView。这个框架其他就是细节太多了,如果有兴趣可以看看源码,会发现里面有太多稀奇古怪的bug修复,因为里面太多控件太多手势杂糅在一起。


#### 框架依赖 APPEND(本框架默认集成以下框架,最新到我这里查看https://github.com/nsdictionary?tab=repositories
>.CoreSDWebImage
>.CoreArchive
>.CoreCategory
>.CoreSVP
>.LFRoundProgressView
>.CoreExtend



使用示例 EXAMPLE

- (IBAction)showAction:(id)sender {
    
    //本地图片展示
    [self localImageShow];
    
    //展示网络图片
//    [self networkImageShow];
}

/*
 *  本地图片展示
 */
-(void)localImageShow{
    
    [PhotoBroswerVC show:self index:2 photoModelBlock:^NSArray *{
        
        NSArray *localImages = @[
                                 
                                 [UIImage imageNamed:@"15"],
                                 [UIImage imageNamed:@"14"],
                                 [UIImage imageNamed:@"13"],
                                 [UIImage imageNamed:@"12"],
                                 [UIImage imageNamed:@"11"]
                                 ];
        
        NSMutableArray *modelsM = [NSMutableArray arrayWithCapacity:localImages.count];
        for (NSUInteger i = 0; i< localImages.count; i++) {
            
            PhotoModel *pbModel=[[PhotoModel alloc] init];
            pbModel.mid = i + 1;
            pbModel.title = [NSString stringWithFormat:@"这是标题%@",@(i+1)];
            pbModel.desc = [NSString stringWithFormat:@"我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字%@",@(i+1)];
            pbModel.image = localImages[i];
            
            [modelsM addObject:pbModel];
        }
        
        return modelsM;
        
    }];
}


/*
 *  展示网络图片
 */
-(void)networkImageShow{
    
    [PhotoBroswerVC show:self index:2 photoModelBlock:^NSArray *{
        
        
        NSArray *networkImages=@[
                          @"http://www.fevte.com/data/attachment/forum/day_110425/110425102470ac33f571bc1c88.jpg",
                          @"http://www.netbian.com/d/file/20150505/5a760278eb985d8da2455e3334ad0c0f.jpg",
                          @"http://www.netbian.com/d/file/20141006/e9d6f04046d483843d353d7a301d36f8.jpg",
                          @"http://www.netbian.com/d/file/20130906/134dca4108f3f0ed10a4cc3f78848856.jpg",
                          @"http://www.netbian.com/d/file/20121111/a03b9adb18a982f6a49aa7bfa7b82371.jpg",
                          @"http://www.netbian.com/d/file/20130421/e0dabeee4e1e62fe114799bc7e4ccd66.jpg",
                          @"http://www.netbian.com/d/file/20121012/c890c1da17bb5b4291e9733fad8efb42.jpg",
                          @"http://www.netbian.com/d/file/20150318/c5c68492a4d6998229d1b6068c77951e.jpg0"
                          ];
        
        NSMutableArray *modelsM = [NSMutableArray arrayWithCapacity:networkImages.count];
        for (NSUInteger i = 0; i< networkImages.count; i++) {
            
            PhotoModel *pbModel=[[PhotoModel alloc] init];
            pbModel.mid = i + 1;
            pbModel.title = [NSString stringWithFormat:@"这是标题%@",@(i+1)];
            pbModel.desc = [NSString stringWithFormat:@"我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字我是一段很长的描述文字%@",@(i+1)];
            pbModel.image_HD_U = networkImages[i];
            
            [modelsM addObject:pbModel];
        }
        
        return modelsM;
        
        
    }];
}



More Repositories

1

CoreLock

高仿支付宝解锁
Objective-C
971
star
2

CoreModel

Replace CoreData
Objective-C
727
star
3

PhotoBrowser

Photo Browser Terminator
Swift
613
star
4

CFCityPickerVC

城市选取控制器
Swift
544
star
5

Reflect

Reflection, Dict2Model, Model2Dict, Archive
Swift
307
star
6

CoreStatus

网络状态监听者:可监听2G/3G/4G
Objective-C
220
star
7

CoreLaunch

一键启动动画
Objective-C
214
star
8

CorePagesView

列表滚动视图,性能王者!
Objective-C
189
star
9

CoreRefresh

核心上拉下拉刷新控件,高性能、与众不同!
Objective-C
188
star
10

CoreNavVC

Most Powerfull NavigationController
Objective-C
187
star
11

CFRuntime

重磅推出:Swift版的MJExtension,运行时、反射与一键字典模型互转
Swift
174
star
12

CoreNewFeatureVC

版本新特性
Objective-C
171
star
13

CoreFMDB

One Key Database Operations
Objective-C
157
star
14

Show

信息公示牌
153
star
15

CorePhotoPickerVCManager

大统一的多功能照片选取器,集成拍摄,单选,多选。
Objective-C
150
star
16

CoreJPush

三分钟,五句代码,搞定JPush
Objective-C
125
star
17

CoreArchive

One Key Archive
Objective-C
111
star
18

CoreUmeng

友盟分享封装
Objective-C
103
star
19

CoreHttp

抛弃AFN,网络处理工具类,将网络交互玩于股掌间的利器!
Objective-C
93
star
20

CorePullScale

表格顶部图片下拉放大控件,一键式安装,异常简单
Objective-C
86
star
21

CoreEmotionView

表情键盘
Objective-C
79
star
22

CoreTFManagerVC

强大的键盘躲避管理器,完全解耦版本!
Objective-C
77
star
23

TextField-InputView

UITextField+InputView模式:终结注册类、信息采集类
Swift
68
star
24

CFPPTView

Swift版幻灯,scrollView无限滚动,支持网络和本地图片展示!
Objective-C
66
star
25

CorePPTVC

幻灯终结者:超简单、酷且炫、多样式、自定义!
Objective-C
62
star
26

CoreLabel

为图文混排而设计,超轻量级的Label,轻度使用下是TTTLabel的最佳替换选择
Objective-C
61
star
27

SinaPhotoView

朋友圈相册视图
Swift
57
star
28

CoreCategory

核心分类,基本所有需要用的功能聚集于此!
Objective-C
48
star
29

CFPagesVC

Professional Multi controller management Framework based on Swift
Swift
45
star
30

CoreMediaFuncManagerVC

一句话打电话
Objective-C
39
star
31

CoreBtn

核心按钮,让界面更专业!旨在替代一部份HUD的Btn
Objective-C
36
star
32

TextView-KeyBoard

textView的键盘躲避者,一句代码集成,灵活,好用。
Swift
34
star
33

CorePasswordView

仿支付宝密码视图
Objective-C
32
star
34

CoreHamburgerManagerVC

汉堡菜单,高度解耦,您想怎么搞就怎么搞!
Objective-C
31
star
35

CoreAleetViewManagerVC

高度集成AlertView/ActionSheet,真的只需要一句代码!
Objective-C
26
star
36

CoreSVP

核心提示工具
Objective-C
25
star
37

CoreList

内部研发
Objective-C
21
star
38

ThreeDTouch

3D Touch
Swift
18
star
39

CoreViewNetWorkStausManager

网络状态提示图层管理者,提高你的app的逼格与细节。
Objective-C
17
star
40

CoreException

核心异常捕捉及处理框架
Objective-C
15
star
41

CoreEaseMob

EaseMob
Objective-C
15
star
42

SwipeNavigationVC

向右滑动退出栈顶控制器
Objective-C
15
star
43

CorePickerView

极简选取器,一安一取,简单方便!
Objective-C
13
star
44

ShiDianFontFit

全自动的屏幕字体适配
Objective-C
13
star
45

CoreBlurView

第二牛B的模糊视图(含图片模糊)
Objective-C
12
star
46

CoreReg

正则封装
Objective-C
11
star
47

CorePageControl

高度自定义的pageControl
Objective-C
10
star
48

CFSegmentControl

双版本分段选取控件
Swift
9
star
49

CoreWeb

原生WebView与H5混编,高效,简单!
8
star
50

CoreExtend

Charlin私有框架:核心扩展
Objective-C
7
star
51

CoreSDWebImage

自用图片加载模型,基于SDWebImage封装
Objective-C
6
star
52

CFSnapKit

CFSnapKit
Swift
6
star
53

CoreFormView

表格
Objective-C
6
star
54

AppLaunchADView

AppLaunchADView
Swift
5
star
55

Resource

5
star
56

SwiftExtension

SwiftExtension
Swift
5
star
57

CoreToast

基于CRToast的封装,更好用
Objective-C
5
star
58

CoreCalendar

日历
Objective-C
5
star
59

CoreJazzHandsVC

手势帧动画
Objective-C
5
star
60

KRVideoPlayerVC

KRVideoPlayer 修改版
Objective-C
5
star
61

CoreCapture

仿微信视频拍摄
Objective-C
4
star
62

CoreAddressBookVC

通讯录
Objective-C
4
star
63

CoreTransition

Push切换
Objective-C
4
star
64

CoreGuideView

CoreGuideView
Objective-C
4
star
65

CoreKXMovie

编译KXMovie
C
3
star
66

ShiDianHttp

基于Volley的框架(浓郁的iOS风格)
Java
3
star
67

LocationManager

LocationManager
Swift
3
star
68

AnimTabVC

AnimTabVC
Swift
3
star
69

CoreRAC

集成RAC
Objective-C
3
star
70

CoreMasonry

Masonry
Objective-C
3
star
71

CoreShineLabel

淡入淡出的Label
Objective-C
3
star
72

CountDownLabel

考试系统倒计时
Swift
3
star
73

CoreVideoView

CoreVideoView
Objective-C
3
star
74

Snapkit

Snapkit
Objective-C
2
star
75

ImagePicker

ImagePicker
Objective-C
2
star
76

CoreYYWebImage

CoreYYWebImage
Objective-C
2
star
77

WeChatApp

微信小程序笔记
2
star
78

CorePopView

CorePopView
Objective-C
2
star
79

CorePaperButton

CorePaperButton
Objective-C
2
star
80

CorePopoverController

PopoverController
Objective-C
2
star
81

CoreWebViewController

CoreWebViewController
Objective-C
2
star
82

CoreTipView

CoreTipView
Objective-C
2
star
83

Pop

Pop动画引擎
Objective-C++
2
star
84

ShiDianPay

ShiDianPay
C
2
star
85

CoreKeyChain

KeyChain
Objective-C
2
star
86

YeahComponent

YeahComponent
Objective-C
1
star
87

ShiDianPlayerView

ShiDianPlayerView
Objective-C
1
star
88

CFPhotoBroswer

Powefull PhotoBroswer For Swift
Swift
1
star
89

MapView

MapView
Swift
1
star
90

CoreLBXScan

CoreLBXScan
Objective-C
1
star
91

CoreJHAnim

CoreJHAnim
Objective-C
1
star
92

CoreTextView

CoreTextView
Objective-C
1
star
93

NewcomerGuide

NewcomerGuide
Swift
1
star
94

CoreAsyncDisplayKit

CoreAsyncDisplayKit
Objective-C++
1
star
95

CoreMorphingLabel

仿iOS8的Label
Objective-C
1
star
96

CoreIV

CoreIV
Objective-C
1
star
97

ShiDianUM

ShiDianUM
Objective-C
1
star
98

ShiDianWebViewController

Objective-C
1
star
99

CoreUMengMobClick

CoreUMengMobClick
Objective-C
1
star
100

ShiDianRefresh

ShiDianRefresh
Objective-C
1
star