Skip to content

LunaCodeGirl/SwiftPhotoGallery

 
 

Repository files navigation

SwiftPhotoGallery

Version License Platform CocoaPods tests Swift

Usage

To run the example project, clone the repo, and run pod install from the Example directory first.

-Pinch to zoom. -Double tap to zoom all the way in and again to zoom all the way out. -Single tap to close.

-Supports images of varying sizes.

-Includes unit test.

Requirements

  • iOS 8.3+
  • Xcode 8.0+
  • Swift 3.0+

Installation

SwiftPhotoGallery is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "SwiftPhotoGallery"

Implementation

  • Import the framework in your view controller
import SwiftPhotoGallery
  • Create an instance
let gallery = SwiftPhotoGallery(delegate: self, dataSource: self)
  • Customize the look
gallery.backgroundColor = UIColor.blackColor()
gallery.pageIndicatorTintColor = UIColor.grayColor().colorWithAlphaComponent(0.5)
gallery.currentPageIndicatorTintColor = UIColor.whiteColor()
  • Implement the datasource
let imageNames = ["image1.jpeg", "image2.jpeg", "image3.jpeg"]

func numberOfImagesInGallery(gallery: SwiftPhotoGallery) -> Int {
  return imageNames.count
}

func imageInGallery(gallery: SwiftPhotoGallery, forIndex: Int) -> UIImage? {
  return UIImage(named: imageNames[forIndex])
}
  • Implement the delegate
func galleryDidTapToClose(gallery: SwiftPhotoGallery) {
  // do something cool like:
  dismissViewControllerAnimated(true, completion: nil)
}
  • Full example:
class ViewController: UIViewController, SwiftPhotoGalleryDataSource, SwiftPhotoGalleryDelegate {

    let imageNames = ["image1.jpeg", "image2.jpeg", "image3.jpeg"]

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func didPressShowMeButton(sender: AnyObject) {
        let gallery = SwiftPhotoGallery(delegate: self, dataSource: self)

        gallery.backgroundColor = UIColor.blackColor()
        gallery.pageIndicatorTintColor = UIColor.grayColor().colorWithAlphaComponent(0.5)
        gallery.currentPageIndicatorTintColor = UIColor.whiteColor()

        presentViewController(gallery, animated: true, completion: nil)
    }

    // MARK: SwiftPhotoGalleryDataSource Methods

    func numberOfImagesInGallery(gallery: SwiftPhotoGallery) -> Int {
        return imageNames.count
    }

    func imageInGallery(gallery: SwiftPhotoGallery, forIndex: Int) -> UIImage? {

        return UIImage(named: imageNames[forIndex])
    }

    // MARK: SwiftPhotoGalleryDelegate Methods

    func galleryDidTapToClose(gallery: SwiftPhotoGallery) {
        dismissViewControllerAnimated(true, completion: nil)
    }
    
}

Author

Justin Vallely, [email protected]

License

SwiftPhotoGallery is available under the GNU General Public License. See the LICENSE file for more info.

About

iOS photo gallery written in Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 82.0%
  • Objective-C 8.7%
  • Shell 8.6%
  • Ruby 0.7%