Overview
You can use it simply by passing the necessary information!
Serrata is a UI library that allows you to intuitively view images.
Features
Kingfisher is a lightweight and pure Swift implemented library.
It is used in the Serrata. I sincerely respect Kingfisher!
- Support iPhone, iPad and iPhone X!
π - It is the almost same as Image Viewer of Twitter and LINE.
π
Requirements
- Xcode 9.0+
- iOS 11+
- Swift 4.0+
Installation
β οΈ
Caution Kingfisher is installed, too!
CocoaPods
pod 'Serrata'
Carthage
github "horitaku46/Serrata"
Usage
See Example, for more details.
How to use in Example.
guard let selectedCell = collectionView.cellForItem(at: indexPath) as? ImageCell else {
return
}
let slideLeafs: [SlideLeaf] = images.enumerated().map { SlideLeaf(image: $0.1,
title: "Image Title \($0.0)",
caption: "Index is \($0.0)") }
let slideImageViewController = SlideLeafViewController.make(leafs: slideLeafs,
startIndex: indexPath.row,
fromImageView: selectedCell.imageView)
slideImageViewController.delegate = self // Please watch the following SlideLeafViewControllerDelegate.
present(slideImageViewController, animated: true, completion: nil)
Details of SlideLeafViewController.make()
.
/// This method generates SlideLeafViewController.
///
/// - Parameters:
/// - leafs: It is array to display it by a slide.
/// - startIndex: It is for initial indication based on array of leafs.
/// - fromImageView: ImageView of the origin of transition. In the case of nil, CrossDissolve.
/// - Returns: Instance of SlideLeafViewController.
open class func make(leafs: [SlideLeaf], startIndex: Int = 0, fromImageView: UIImageView? = nil) -> SlideLeafViewController {
// code...
}
Details of SlideLeaf
.
import UIKit
public final class SlideLeaf: NSObject {
public var image: UIImage?
public var imageUrlString: String?
public var title: String
public var caption: String
/// If either title and caption is empty, detailView is not displayed.
///
/// - Parameters:
/// - image: To read by a slide.
/// - title: Title of the image.
/// - caption: Caption of the image.
public init(image: UIImage?, title: String = "", caption: String = "") {
self.image = image
self.title = title
self.caption = caption
}
/// If either title and caption is empty, detailView is not displayed.
///
/// - Parameters:
/// - imageUrlString: To read by a slide. It is displayed by Kingfisher.
/// - title: Title of the image.
/// - caption: Caption of the image.
public init(imageUrlString: String?, title: String = "", caption: String = "") {
self.imageUrlString = imageUrlString
self.title = title
self.caption = caption
}
}
delegate
Detail of SlideLeafViewControllerDelegate
.
extension ViewController: SlideLeafViewControllerDelegate {
func tapImageDetailView(slideLeaf: SlideLeaf, pageIndex: Int) {
// code...
}
func longPressImageView(slideLeafViewController: SlideLeafViewController, slideLeaf: SlideLeaf, pageIndex: Int) {
// code...
}
func slideLeafViewControllerDismissed(slideLeaf: SlideLeaf, pageIndex: Int) {
// code...
}
}
Author
Takuma Horiuchi
Example images from
License
Serrata
is available under the MIT license. See the LICENSE file for more info.