Latest 1.0.9
Homepage https://github.com/horitaku46/Serrata
License MIT
Platforms ios 11.0
Dependencies Kingfisher
Authors

Platform
Swift
Cocoapods
Carthage compatible
License

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.

Latest podspec

{
    "name": "Serrata",
    "version": "1.0.9",
    "summary": "Slide image viewer library similar to Twitter and LINE.",
    "description": "You can use it simply by passing the necessary information.nIt is a UI library that allows you to intuitively view images.nKingfisher is a lightweight and pure Swift implemented library.nKingfisher is used in the Serrata. I sincerely respect Kingfisher.",
    "homepage": "https://github.com/horitaku46/Serrata",
    "license": {
        "type": "MIT",
        "file": "./LICENSE"
    },
    "authors": {
        "Takuma Horiuchi": "[email protected]"
    },
    "social_media_url": "https://twitter.com/horitaku46",
    "platforms": {
        "ios": "11.0"
    },
    "source": {
        "git": "https://github.com/horitaku46/Serrata.git",
        "tag": "1.0.9"
    },
    "source_files": "Serrata/Sources/*.{swift}",
    "resources": "Serrata/**/*.{storyboard,xib,xcassets}",
    "dependencies": {
        "Kingfisher": []
    }
}

Pin It on Pinterest

Share This