Need help with KNPhotoBrowser?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

335 Stars 68 Forks MIT License 568 Commits 1 Opened issues


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

Services available


Need anything else?

Contributors list

# 94,215
577 commits
# 74,244
1 commit


CocoaPods CocoaPods Support 


中文 | English

most like photo or video browser of
in China

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


Update content

| DESCRIPTION | STATUS| | ------------- | ------------ | | Base on UIViewController |       √ | | Adapt for rotate of the screen |       √ | | Adapt for

|       √ | | Locate and net image and gif image |       √ | | Locate and net video |       √ | | PanGesture to dismiss or cancel [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] |       √ |

1.Before use, you need to know

  • 1.depend
    , if need locate gif image, depend
  • 2.image and video play is ready for use
  • image or video is ready for use
  • 4.custom control as you wish
  • 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 *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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.