iOS快速集成高性能照片瀏覽器:CorePhotoBroswerVC
秒殺MJPhotobswer, CorePhotoBroswerVC 2.0版本
快速集成高性能照片瀏覽器,支持本地及網絡相冊!
框架說明 DESC
.本框架是全新原創。本版本是2.0版本,此框架費時大概30天左右了,還在不斷完善中,而且還有很多小細節需要處理,如果你在使用中發現bug,請加群@我,我會盡快修改。
.如果你在示例程序中,加載網絡圖片,你會發現圖片顯示有點亂,因為縮略圖我是使用的是本地圖片,所以正式使用的時候是不會有問題的。
.本框架包含了很多本地圖片以及gif示例演示圖片,所以包有點大,大概50MB左右,真正框架很小。請放心使用。
.再次申明,本版本還有很多地方需要完善,后續會繼續更新!謝謝!
友情提示 MENTION
Charlin(成都)更多原創項目(涵蓋了方方面面,看看還有沒有你需要的):
首頁:https://github.com/nsdictionary
列表:https://github.com/nsdictionary?tab=repositories
成都iOS開發群:163865401(Charlin創建與維護,歡迎加群交流!)
2.0版本特性 FEATURE
全新2.0版本,主要添加了眾多切換方式,以及多種切換效果,供大家任意選取,請看Charlin給你展示:
Push方式展示(圖片較大,請耐心等待)
modal方式展示(圖片較大,請耐心等待)
transition方式展示(圖片較大,請耐心等待)
zoom方式展示(圖片較大,請耐心等待)
后期會繼續增加一個展示方式,請期待!!!
細節說明:
zoom方式下,有非常多的細節,這里截圖說明一二
如果你在放大圖片的情況下,直接關閉相冊瀏覽器,則框架會做一個連續動畫(圖片較大,請耐心等待)
如果相冊瀏覽器退出時對應圖片超出屏幕之外,此時會以另外一種動畫方式展示(圖片較大,請耐心等待)
使用示例 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(動態圖片較大,請耐心等待)
展示網絡圖片相冊
展示本地圖片相冊
網絡或者本地圖片保存到手機系統相冊
框架特性 FRATURE
.ios版本兼容ios 7.0及以上.
.高仿網易新聞,后期將加入仿微信及新浪微博。
.xib定制界面,適配所有屏幕,同時方便你自定義你的功能,你想增加刪除控件非常方便。
.好看的進度指示器,占位圖片及HUD集成。
.各種手勢處理,含顯示隱藏界面信息,導航條,雙擊放大,雙指捏合縮放。
.加入了比較fastion的圖片間距,每頁圖片之前會有一個間距,這樣幾頁圖片不會粘在一起,更加美觀(網易居然都沒加)。
.圖片保存系統相冊功能,及保存過的圖片不會重復保存(我試過新浪微博會重復保存)。
.任意圖片尺寸能夠以最合理的方式展示,含復雜的圖片frame計算。
.支持本地圖片展示、支持網絡圖片展示,支持指定index展示(從第index張展示,不一定是第0張)。
.修復了雙擊放大可能后位置有點偏移的bug。
.高性能,使用tableView一樣的cell緩存池重用機制,性能極佳(重用帶來了若干bug,目前已經修復,可能還有,請查看默認log地內存址)。
.后期將加入比較帥氣的frame放大功能,敬請期待!!!!!!
Charlin想說 SAY
此版本最開始是使用ColletionView來做的,后面在collectionView的cell里面增加scrollView會出現ios7 下亂跳的bug,無法解決,后來只有換成scrollView。這個框架其他就是細節太多了,如果有興趣可以看看源碼,會發現里面有太多稀奇古怪的bug 修復,因為里面太多控件太多手勢雜糅在一起。可能還是有很多bug,可以加我群成都iOS開發群_Charlin:163865401討論。
框架依賴 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; }]; }
CorePhotoBroswerVC 快速集成高性能照片瀏覽器,支持本地及網絡相冊!!