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.
- iOS 8.3+
- Xcode 8.0+
- Swift 3.0+
SwiftPhotoGallery is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "SwiftPhotoGallery"
- 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)
}
}
Justin Vallely, [email protected]
SwiftPhotoGallery is available under the GNU General Public License. See the LICENSE file for more info.