• Stars
    star
    373
  • Rank 114,600 (Top 3 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created about 8 years ago
  • Updated 8 months ago

Reviews

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

Repository Details

图片浏览器(本地和网络) ,视频浏览器 (本地和网络), 无耦合性,自定义控件,资源路径保存和获取, 完美适配 iPhone 以及 iPad ,屏幕旋转功能.

image

CocoaPods CocoaPods Support 

KNPhotoBrowser

中文 | English

most like photo or video browser of Wechat(TX) and Weibo(Sina) in China

if you get any function to add, just contact me by E-mail. Welcome to Star

imageimageimageimageimage

Update content

DESCRIPTION
Base on UIViewController
Adapt for rotate of the screen, split screen of iPad
Adapt for iPhone5~iPhone14Pro_Max
Locate and net image and gif image
Locate and net video
PageControl can add target to change value [API]
PanGesture to dismiss or cancel(normal image, long image, video) [API]
Prefetch image, max is 8 [API]
Video player auto play [API]
Video player times speed play [API]
Video player support play online(no cache,no download) [API]
Video player support play after download(it will search next time) [API]
Show custom view on PhotoBrowser [API]
Show custom view on PhotoBrowser, and set animated following photoBrowser [API]
Before the photoBrowser show, all image control can be custom [API]
All operation though the delegate [Delegate]
push ViewController (2022-12) [API]
reload collection dataSource (2022-12) [API]

TODO:

  • tap video player to dismiss [Finished in demo]
  • play video player and download video background
  • video player has memory play at next time(current seconds)
  • when photoBrower will show or dismiss, let sourceImageView hidden or show (by delegate function to notificate demo) [Finished in demo]
  • video player change scale

1.Before use, you need to know

  • 1.depend >=SDWebImage(5.0), if need locate gif image, depend >=SDWebImage(5.8.3)
  • 2.image and video play is ready for use
  • 3.download image or video is ready for use
  • 4.custom control as you wish
  • 5.auto manager image or video of download is finished

2.How to use

(1).init base params

// 1.make every control as an object, put it into an array
KNPhotoItems *items = [[KNPhotoItems alloc] init];
items.url = @"http://xxxxxxxx/xxx.png";
items.sourceView = imageView;
// if current url is video type
// items.isVideo = true;
// if current image is locate gif
// itemM.isLocateGif = true;
[self.itemsArr addObject:items];

(2).init PhotoBrowser

KNPhotoBrowser *photoBrowser = [[KNPhotoBrowser alloc] init];
photoBrowser.itemsArr = [self.itemsArr copy];
photoBrowser.currentIndex = tap.view.tag;

/// photoBrowser will present
[photoBrowser present];

/// photoBrowser will dismiss
/// [photoBrowser dismiss];

(3).function's describe of delegate

photoBrowser will dismiss
/// photoBrowser will dismiss with currentIndex
- (void)photoBrowser:(KNPhotoBrowser *)photoBrowser willDismissWithIndex:(NSInteger)index;
photoBrowser right button did click
/// photoBrowser right top button did click with currentIndex (you can custom you right button, but if you custom your right button, that you need implementate your target action)
- (void)photoBrowser:(KNPhotoBrowser *)photoBrowser rightBtnOperationActionWithIndex:(NSInteger)index;

.....

(4).component of browser : KNPhotoItems

base params of items
/// if it is network image,  set `url` , do not set `sourceImage`
@property (nonatomic,copy  ) NSString *url;

/// if it is locate image, set `sourceImage`, do not set `url`
@property (nonatomic,strong) UIImage *sourceImage;

/// sourceView is current control to show image or video.
/// 1. if the sourceView is kind of `UIImageView` or `UIButton` , just only only only set the `sourceView`.
/// 2. if the sourceView is the custom view , set the `sourceView`, but do not forget set `sourceLinkArr` && `sourceLinkProperyName`.
@property (nonatomic,strong) UIView *sourceView;
custom source View (it is very nice)
@property (nonatomic,strong) NSArray<NSString *> *sourceLinkArr;

/**
 eg:
    if the lastObject is kind of  UIImageView ,  the `sourceLinkProperyName` is `image`
    if the lastObject is kind of  UIButton ,  the `sourceLinkProperyName` is `currentBackgroundImage` or `currentImage`
 */

/// the property'name of the  sourceLinkArr lastObject
@property (nonatomic,copy  ) NSString *sourceLinkProperyName;

3.How to install

pod 'KNPhotoBrowser'

// terminal : cd ~(current path)
pod install or pod update

5.By the way

  • if you get any idea, just contact me! Thanks