:octocat: PreviewTransition is a simple preview gallery UI controller with animated tranisitions. Swift UI library made by @Ramotion - https://dev.ramotion.com/gthbr
Clone or download
Latest commit 2f8f77f Dec 10, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
PreviewTransition convert to swift 4.2 Sep 17, 2018
PreviewTransitionDemo update deployment target Sep 17, 2018
docs update docs Jun 10, 2016
.gitignore added project Apr 4, 2016
.swift-version config swift version Jan 18, 2018
.travis.yml add demo icon, configure travis CI Jan 18, 2018
LICENSE added license Apr 5, 2016
PreviewTransition.podspec update podspec Sep 17, 2018
README.md Update README.md Dec 10, 2018
header.png added header May 19, 2016
preview-transition.gif Add files via upload Apr 27, 2018
preview.gif added preview gif May 19, 2016




Twitter Travis Carthage compatible CocoaPods CocoaPods codebeat badge Donate


This project is maintained by Ramotion, Inc.
We specialize in the designing and coding of custom UI for Mobile Apps and Websites.

Looking for developers for your project?
This project is maintained by Ramotion, Inc. We specialize in the designing and coding of custom UI for Mobile Apps and Websites.

The iPhone mockup available here.


  • iOS 9.0+
  • Xcode 9


Preview-transition is released under the MIT license. See LICENSE for details.


Just add the Source folder to your project or use CocoaPods like this:

pod "PreviewTransition"

or Carthage users can simply add to their Cartfile:

github "Ramotion/preview-transition"


  1. import PreviewTransition

  2. Create UITableViewController inherit, inheriting from PTTableViewController

  3. Add UITableViewDelegate methods

public override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return <RowsCount>

public override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    return tableView.dequeueReusableCellWithIdentifier(<CellIdentifier>, forIndexPath: indexPath)
  1. add a ParallaxCell

storyboards: create a cell and inherit from ParallaxCell; don't forget set the identifier <CellIdentifier>

or programmatically: register a cell in viewDidLoad tableView.registerClass(ParallaxCell, forCellReuseIdentifier:<CellIdentifier>)

  1. set cell height

  2. create image names (image sizes must be equal to screen size or bigger)

let images = [image_name, image_name, image_name, image_name, image_name] // image names
  1. set image and text for ParallaxCell
public override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {

    guard let cell = cell as? ParallaxCell else {

    let imageName = images[indexPath.row]

    if let image = UIImage(named: imageName) {
      cell.setImage(image, title: <SetText>)

your tableViewController should look like DemoTableViewController

Method public override func tableView(tableView: didSelectRowAtIndexPath indexPath:) we will add later. (step 10)

  1. Create UIViewController, inheriting from PTDetailViewController

  2. Add action for backButton and call popViewController()

func backButtonHandler() {
  1. Push this UIViewController in UITableViewController. Add method
public override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

  // create viewController
  let <YourViewController> = storyboard?.instantiateViewControllerWithIdentifier(<identifier>)
  if case let viewController as <YourViewController> = viewController {
  1. Configure UINavigationBar
// transparent background
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().translucent = true
UINavigationBar.appearance().tintColor = .whiteColor()

// set font
if let font = UIFont(name: <Font name> , size: 18) {
      UINavigationBar.appearance().titleTextAttributes = [
        NSForegroundColorAttributeName : UIColor.whiteColor(),
        NSFontAttributeName : font

This library is a part of a selection of our best UI open-source projects.

Get the Showroom App for iOS to give it a try

Try this UI component and more like this in our iOS app. Contact us if interested.

Follow us for the latest updates