SwipablePhotoBrowser 1.0.5

SwipablePhotoBrowser 1.0.5

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Oct 2015
SPMSupports SPM

Maintained by suzuki-0000.



  • By
  • suzuki_keishi

SwipablePhotoBrowser

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

sample

Requirements

  • iOS 8.0+
  • Swift 2.0+
  • ARC

Installation

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 SwipablePhoto Array from UIImage
var images = [SwipablePhoto]()
let photo = SwipablePhoto.photoWithImage(UIImage())// add some UIImage
images.append(photo) 

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

from web URLs:

// URL pattern snippet
var images = [SwipablePhoto]()
let photo = SwipablePhoto.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 = SwipablePhotoBrowser(photos: images)
browser.initializePageIndex(0)
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) as! ExampleCollectionViewCell
   let originImage = cell.exampleImageView.image! // some image for baseImage 
   let browser = SwipablePhotoBrowser(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) button.

  • displayCounterLabel (default is true)
  • displayBackAndForwardButton (default is true). If you dont want the toolbar at all, you can set displayToolbar = false (default is true)
let browser = SwipablePhotoBrowser(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

Photo Captions

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

let photo = SwipablePhoto.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 = SwipablePhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)
browser.disableVerticalSwipe = true 

StatusBar

you can hide statusbar forcely using property:

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

Delegate

There’s some trigger point you can handle using delegate.

  • didShowPhotoAtIndex(index:Int)
  • willDismissAtPageIndex(index:Int)
  • didDismissAtPageIndex(index:Int)
let browser = SwipablePhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)
browser.delegate = self

// MARK: - SwipablePhotoBrowserDelegate
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.