Go to file
suzuki_keishi dda2477c9f [update]pod spec. 2016-03-02 16:23:10 +09:00
SKPhotoBrowser new algorithm for maxScale in SKZoomingScrollView 2016-03-02 11:22:23 +04:00
SKPhotoBrowser.xcodeproj [clean]using swiftlint. 2016-02-01 17:34:44 +09:00
SKPhotoBrowserExample [update]readme. 2016-03-01 10:37:59 +09:00
Screenshots [add]first commit. 2015-10-09 15:19:43 +09:00
.gitignore [add]first commit. 2015-10-09 15:19:43 +09:00
.swiftlint.yml [update]some delegate goes to optional. 2016-02-22 10:24:23 +09:00
.travis.yml [update]delegate add for actionbutton. 2016-02-02 14:14:45 +09:00
LICENSE [add]first commit. 2015-10-09 15:19:43 +09:00
README.md [update]readme for deletion. 2016-03-01 10:49:30 +09:00
SKPhotoBrowser.podspec [update]pod spec. 2016-03-02 16:23:10 +09:00

README.md

SKPhotoBrowser

Carthage Compatible Cocoapods Compatible Swift 2.0

Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift2.0, based on IDMPhotoBrowser, MWPhotoBrowser.

features

  • Can display one or more images by providing either UIImage objects, or string of URL array.
  • Photos can be zoomed and panned, and optional captions can be displayed
  • Minimalistic Facebook-like interface, swipe up/down to dismiss
  • has simple ability to custom photobrowser. (hide/show statusbar, some toolbar for controls, swipe control)
  • Handling and caching photos from web
  • Landscape handling.
  • Delete photo support(by offbye). By set displayDelete=true show a delete icon in statusbar, deleted indexes can be obtain from delegate func didDeleted

sample

Requirements

  • iOS 8.0+
  • Swift 2.0+
  • ARC

##Installation

####CocoaPods available on CocoaPods. Just add the following to your project Podfile:

pod 'SKPhotoBrowser'
use_frameworks!

####Carthage To integrate into your Xcode project using Carthage, specify it in your Cartfile:

github "suzuki-0000/SKPhotoBrowser"

####Manually Add the code directly into your project.

##Usage See the code snippet below for an example of how to implement, or example project would be easy to understand.

// add SKPhoto Array from UIImage
var images = [SKPhoto]()
let photo = SKPhoto.photoWithImage(UIImage())// add some UIImage
images.append(photo) 

// create PhotoBrowser Instance, and present. 
let browser = SKPhotoBrowser(photos: images)
browser.initializePageIndex(0)
browser.delegate = self
presentViewController(browser, animated: true, completion: {})

from web URLs:

// URL pattern snippet
var images = [SKPhoto]()
let photo = SKPhoto.photoWithImageURL("https://placehold.jp/150x150.png")
photo.shouldCachePhotoURLImage = false // you can use image cache by true(NSCache)
images.append(photo)

// create PhotoBrowser Instance, and present. 
let browser = SKPhotoBrowser(photos: images)
presentViewController(browser, animated: true, completion: {})

If you want to use zooming effect from an existing view, use another initializer:

// e.g.: some tableView or collectionView.
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
   let cell = collectionView.cellForItemAtIndexPath(indexPath) 
   let originImage = cell.exampleImageView.image // some image for baseImage 
   let browser = SKPhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell) 
   browser.initializePageIndex(indexPath.row)
   presentViewController(browser, animated: true, completion: {})
}

Custom

Toolbar

You can customize the toolbar(back/forward, counter, some action) button.

  • displayCounterLabel (default is true)
  • displayBackAndForwardButton (default is true)
  • displayAction (default is true)

If you dont want the toolbar at all, you can set displayToolbar = false (default is true)

let browser = SKPhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)
browser.displayToolbar = false                // all tool bar will be hidden
browser.displayCounterLabel = false           // counter label will be hidden
browser.displayBackAndForwardButton = false   // back / forward button will be hidden
browser.displayAction = false                 // action button will be hidden
browser.displayDeleteButton = true            // delete button will be shown

Delete

You can delete your photo for your own hanlding

Photo Captions

Photo captions can be displayed simply bottom of PhotoBrowser. by setting the caption property on specific photos:

let photo = SKPhoto.photoWithImage(UIImage())
photo.caption = "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
images.append(photo)

SwipeGesture

vertical swipe can enable/disable:

let browser = SKPhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)
browser.disableVerticalSwipe = true 

StatusBar

you can hide statusbar forcely using property:

let browser = SKPhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)
browser.isForceStatusBarHidden = true 

Delegate

There's some trigger point you can handle using delegate. those are optional.

  • didShowPhotoAtIndex(index:Int)
  • willDismissAtPageIndex(index:Int)
  • didDismissAtPageIndex(index:Int)
  • didDismissActionSheetWithButtonIndex(buttonIndex: Int, photoIndex: Int)
  • removePhoto(browser: SKPhotoBrowser, index: Int, reload: (() -> Void))
let browser = SKPhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)
browser.delegate = self

// MARK: - SKPhotoBrowserDelegate
func didShowPhotoAtIndex(index: Int) {
// when photo will be shown
}

func willDismissAtPageIndex(index: Int) {
// when PhotoBrowser will be dismissed
}

func didDismissAtPageIndex(index: Int) {
// when PhotoBrowser did dismissed
}

Photos from

License

available under the MIT license. See the LICENSE file for more info.