99 lines
4.1 KiB
Markdown
99 lines
4.1 KiB
Markdown
|
|
KSPhotoBrowser
|
||
|
|
==============
|
||
|
|
[](https://raw.githubusercontent.com/skx926/KSPhotoBrowser/master/LICENSE)
|
||
|
|
[](http://cocoapods.org/?q=KSPhotoBrowser)
|
||
|
|
[](http://cocoapods.org/?q=KSPhotoBrowser)
|
||
|
|
[](https://www.apple.com/nl/ios/)
|
||
|
|
|
||
|
|
### A beautiful photo browser with interactive dismissal animation.
|
||
|
|
|
||
|
|

|
||
|
|

|
||
|
|

|
||
|
|

|
||
|
|

|
||
|
|

|
||
|
|
|
||
|
|
|
||
|
|
Features
|
||
|
|
==============
|
||
|
|
- [x] 4 different interactive dismissal animations (Rotation, Scale, Slide)
|
||
|
|
- [x] 3 different background styles (Blur Photo, Blur, Black)
|
||
|
|
- [x] 2 different loading styles (Determinate, Indeterminate)
|
||
|
|
- [x] 2 different pager styles (Dot, Text)
|
||
|
|
- [x] Support bounce animation
|
||
|
|
- [x] Optimized for image which has a very large height
|
||
|
|
- [x] Can display one or more images by providing either image urls or UIImage objects
|
||
|
|
- [x] Custom image downloader library support
|
||
|
|
- [x] Smooth animation with corner radius
|
||
|
|
- [x] Support both portrait and landscape device orientation
|
||
|
|
- [ ] Support video browse
|
||
|
|
|
||
|
|
|
||
|
|
Usage
|
||
|
|
==============
|
||
|
|
### Display images from urls
|
||
|
|
```objc
|
||
|
|
NSArray *urls = @[@"https://ww4.sinaimg.cn/bmiddle/a15bd3a5jw1f12r9ku6wjj20u00mhn22.jpg",
|
||
|
|
@"https://ww2.sinaimg.cn/bmiddle/a15bd3a5jw1f01hkxyjhej20u00jzacj.jpg"];
|
||
|
|
NSMutableArray *items = @[].mutableCopy;
|
||
|
|
for (int i = 0; i < urls.count; i++) {
|
||
|
|
// Get the large image url
|
||
|
|
NSString *url = [urls[i] stringByReplacingOccurrencesOfString:@"bmiddle" withString:@"large"];
|
||
|
|
UIImageView *imageView = _imageViews[i];
|
||
|
|
KSPhotoItem *item = [KSPhotoItem itemWithSourceView:imageView imageUrl:[NSURL URLWithString:url]];
|
||
|
|
[items addObject:item];
|
||
|
|
}
|
||
|
|
KSPhotoBrowser *browser = [KSPhotoBrowser browserWithPhotoItems:items selectedIndex:0];
|
||
|
|
[browser showFromViewController:self];
|
||
|
|
```
|
||
|
|
|
||
|
|
### Display images from UIImage objects
|
||
|
|
```objc
|
||
|
|
NSArray *names = @[@"a.jpg", @"b.jpg"];
|
||
|
|
NSMutableArray *items = @[].mutableCopy;
|
||
|
|
for (int i = 0; i < names.count; i++) {
|
||
|
|
UIImageView *imageView = _imageViews[i];
|
||
|
|
KSPhotoItem *item = [KSPhotoItem itemWithSourceView:imageView image:[UIImage imageNamed:names[i]]];
|
||
|
|
[items addObject:item];
|
||
|
|
}
|
||
|
|
KSPhotoBrowser *browser = [KSPhotoBrowser browserWithPhotoItems:items selectedIndex:0];
|
||
|
|
[browser showFromViewController:self];
|
||
|
|
```
|
||
|
|
|
||
|
|
Installation
|
||
|
|
==============
|
||
|
|
### Cocoapods
|
||
|
|
1. Update cocoapods to the latest version.
|
||
|
|
2. Add `pod 'KSPhotoBrowser'` to your Podfile.
|
||
|
|
3. Run `pod install` or `pod update`.
|
||
|
|
4. Import `KSPhotoBrowser.h`.
|
||
|
|
|
||
|
|
|
||
|
|
### Manually
|
||
|
|
1. Download all the files of KSPhotoBrowser and add source files to your project.
|
||
|
|
2. Manually install [SDWebImage](https://github.com/rs/SDWebImage) to your project.
|
||
|
|
3. Import `KSPhotoBrowser.h`.
|
||
|
|
|
||
|
|
### Custom Image Downloader
|
||
|
|
It use `SDWebImage` as default image downloader, you can also use your custom image downloader like `YYWebImage`, `Kingfisher` and so on.
|
||
|
|
|
||
|
|
To use a custom image downloader, you need to create a class and make it conforms to `KSImageManagerProtocol` and implement those methods inside that protocol.
|
||
|
|
|
||
|
|
For convenience, I have already created `KSYYImageManager` to support `YYWebImage` as an example in the demo, you can also use it directly.
|
||
|
|
|
||
|
|
Finally, just use the code below to set your class to `KSPhotoBrowser` before you use the browser to show images.
|
||
|
|
|
||
|
|
```objc
|
||
|
|
[KSPhotoBrowser setImageManagerClass:KSYYImageManager.class]
|
||
|
|
```
|
||
|
|
|
||
|
|
Requirements
|
||
|
|
==============
|
||
|
|
This library requires `iOS 8.0+` and `Xcode 8.0+`.
|
||
|
|
|
||
|
|
|
||
|
|
License
|
||
|
|
==============
|
||
|
|
KSPhotoBrowser is provided under the MIT license. See LICENSE file for details.
|