iOS library Paper Onboarding is a material design UI slider written on Swift.

Overview

PAPER ONBOARDING

iOS library Paper Onboarding is a material design UI slider written on Swift.


We specialize in the designing and coding of custom UI for Mobile Apps and Websites.

Stay tuned for the latest updates:

Get Free Mockup For your project →

Twitter CocoaPods CocoaPods Carthage compatible Travis codebeat badge Donate

Requirements

  • iOS 10.0+
  • Xcode 10.2

Installation

Just add the Source folder to your project.

or use CocoaPods with Podfile:

pod 'paper-onboarding'

or Carthage users can simply add to their Cartfile:

github "Ramotion/paper-onboarding"

or Swift Package Manager by adding:

dependencies: [
.package(url: "https://github.com/Ramotion/paper-onboarding.git", from: "6.1.4")
]

to Package.swift

Usage

Storyboard

  1. Create a new UIView inheriting from PaperOnboarding

  2. Set dataSource in attribute inspector

or Code

override func viewDidLoad() {
  super.viewDidLoad()

  let onboarding = PaperOnboarding()
  onboarding.dataSource = self
  onboarding.translatesAutoresizingMaskIntoConstraints = false
  view.addSubview(onboarding)

  // add constraints
  for attribute: NSLayoutAttribute in [.Left, .Right, .Top, .Bottom] {
    let constraint = NSLayoutConstraint(item: onboarding,
                                        attribute: attribute,
                                        relatedBy: .Equal,
                                        toItem: view,
                                        attribute: attribute,
                                        multiplier: 1,
                                        constant: 0)
    view.addConstraint(constraint)
  }
}

For adding content use dataSource methods:

Int { return 3 } ">
  func onboardingItem(at index: Int) -> OnboardingItemInfo {

   return [
     OnboardingItemInfo(informationImage: IMAGE,
                                   title: "title",
                             description: "description",
                                pageIcon: IMAGE,
                                   color: UIColor.RANDOM,
                              titleColor: UIColor.RANDOM,
                        descriptionColor: UIColor.RANDOM,
                               titleFont: UIFont.FONT,
                         descriptionFont: UIFont.FONT),

     OnboardingItemInfo(informationImage: IMAGE,
                                    title: "title",
                              description: "description",
                                 pageIcon: IMAGE,
                                    color: UIColor.RANDOM,
                               titleColor: UIColor.RANDOM,
                         descriptionColor: UIColor.RANDOM,
                                titleFont: UIFont.FONT,
                          descriptionFont: UIFont.FONT),

    OnboardingItemInfo(informationImage: IMAGE,
                                 title: "title",
                           description: "description",
                              pageIcon: IMAGE,
                                 color: UIColor.RANDOM,
                            titleColor: UIColor.RANDOM,
                      descriptionColor: UIColor.RANDOM,
                             titleFont: UIFont.FONT,
                       descriptionFont: UIFont.FONT)
     ][index]
 }

 func onboardingItemsCount() -> Int {
    return 3
  }

configuring content item:

func onboardingConfigurationItem(item: OnboardingContentViewItem, index: Int) {

//    item.titleLabel?.backgroundColor = .redColor()
//    item.descriptionLabel?.backgroundColor = .redColor()
//    item.imageView = ...
  }

🗂 Check this library on other language:

📄 License

Paper Onboarding is released under the MIT license. See LICENSE for details.

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

If you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com

📱 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.



Comments
  • Cannot convert return expression of type

    Cannot convert return expression of type

    I'm having this error thrown out when trying to set up paper_onboarding from code, at the end of return onboardingItemAtIndex [index]

    Cannot convert return expression of type '(Image, String, String, Image, UIColor, UIColor, UIColor, UIFont, UIFont)' (aka '(UIImage, String, String, UIImage, UIColor, UIColor, UIColor, UIFont, UIFont)') to return type 'OnboardingItemInfo' (aka '(imageName: String, title: String, description: String, iconName: String, color: UIColor, titleColor: UIColor, descriptionColor: UIColor, titleFont: UIFont, descriptionFont: UIFont)')

    opened by perteraul 17
  • unrecognized selector sent to instance

    unrecognized selector sent to instance

    Dear all,

    I'm using Xcode 9 Beta 3 and as soon as I add "PaperOnboardingDelegate" to the ViewController Class and include onboardingView.delegate = self within the ViewDidLoad() I'll get the following error and the App crashes:

    2017-08-08 03:33:48.455340+0200 MyProject[7563:1139517] -[MyProject.ViewController onboardingConfigurationItem:index:]: unrecognized selector sent to instance 0x7f88d4602f70 2017-08-08 03:33:48.476036+0200 MyProject[7563:1139517] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyProject.ViewController onboardingConfigurationItem:index:]: unrecognized selector sent to instance 0x7f88d4602f70'

    Removing "onboardingView.delegate = self" will work but than the following functions are useless:

    func onboardingConfigurationItem(item: OnboardingContentViewItem, index: Int) {
    
    }
    
    func onboardingWillTransitionToIndex(index: Int) {
        if index == 1 {
            if self.getStartedButton.alpha == 1 {
                UIView.animate(withDuration: 0.2, animations: {
                    self.getStartedButton.alpha = 0
                })
            }
        }
    }
    
    func onboardingDidTransitionToIndex(index: Int) {
        if index == 2 {
            UIView.animate(withDuration: 0.4, animations: {
                self.getStartedButton.alpha = 1
            })
        }
    }
    

    Any Ideas? Thanks for a quick reply.

    BR, Michael

    opened by mkocurek 11
  • Crash on setting up the delegate

    Crash on setting up the delegate

    Any of the method i follow app is getting crashed with fatal error

    on this line " guard case let dataSource as PaperOnboardingDataSource = self.dataSource else { "

    ` private func createItemsInfo() -> [OnboardingItemInfo] { guard case let dataSource as PaperOnboardingDataSource = self.dataSource else { fatalError("set dataSource") }

    var items = [OnboardingItemInfo]()
    for index in 0..<itemsCount {
      let info = dataSource.onboardingItemAtIndex(index)
      items.append(info)
    }
    return items
    

    }

    }`

    any clue , please find the attached screenshot of my crashLog screen shot 2016-06-22 at 5 04 47 pm

    opened by sundarsan 11
  • Can't use paper-onboarding

    Can't use paper-onboarding

    I'm create new project with Xcode 8.2.1 ( using Swift 3 ) and using paper-onboarding 2.0.1. I can't use paper-onboarding. It said that " No such module 'PaperOnboarding' ". What should I do ?

    opened by johnnywhisker 10
  • onboardingConfigurationItem not called for index 0

    onboardingConfigurationItem not called for index 0

    I'm using your demo code and trying to make the image full screen and send it to the background.

    In ViewController -> onboardingConfigurationItem I have remove the current constrains and added new ones for the image to have full size.

    Problem is that it is not working for the first (initial screen). But if I change to screen 2 and go back to initial screen then the method is called and the image is full size.

    Any idea why this is happening?

    opened by ebenj 5
  • Swift 3 Support?

    Swift 3 Support?

    As Xcode 8 and Swift 3 release becoming imminent, do you have any plans for updating this library for that?

    ~~P.S.: I have already started the PR, it's way too complicated for me!~~ Done

    opened by mohpor 5
  • Swipe last tab to open HomeVC instead of using skip button

    Swipe last tab to open HomeVC instead of using skip button

    Hi, I am trying to use your delegate methods to open homevc once the user is on the last tab and swipe right, but it doesn't work. How can I swipe the last tab to perform a segue?

    opened by Kalianey 4
  • Can't get Onboarding Configuration Item to fire - ideas?

    Can't get Onboarding Configuration Item to fire - ideas?

    Love the onboarding flow! Only thing is I'd love to tweak the spacing for the description test, but can't get onboardingConfigurationItem() to fire.

    Is anyone able to share an example of how they implemented it?

    Thanks!

    bug 
    opened by SteveBlackUK 3
  • How to change color of little circle on bottom of view

    How to change color of little circle on bottom of view

    Hi, Is there any method or something else to change color of little circle in bottom of each view of the on boarding flow ? this too clear for me and I don't find any solution... KR

    opened by Mike4ftv 3
  • Changing the PageViewItem image on initialization

    Changing the PageViewItem image on initialization

    I desire something like this where the standard circles are replaced by the images themselves when unselected. Is this possible in one of the delegate or data source methods? dishsnippet

    opened by jboo1212 3
  • Contextual type 'OnboardingItemInfo' cannot be used with array literal

    Contextual type 'OnboardingItemInfo' cannot be used with array literal

    I'm trying to add content as per the instructions, but I get the following error:

    Contextual type 'OnboardingItemInfo' (aka '(imageName: UIImage, title: String, description: String, iconName: UIImage, color: UIColor, titleColor: UIColor, descriptionColor: UIColor, titleFont: UIFont, descriptionFont: UIFont)') cannot be used with array literal

    opened by carolinemcqueen 3
  • Remove deprecation

    Remove deprecation

    Updated Delegate to remove the deprecated "class" conformation. Using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead => Update to AnyObject

    opened by mhasan341 0
  • Not able to load GIF's

    Not able to load GIF's

    Is there any way to load the Gif's instead of the images in the current framework? I tried loading a gif but it turns out to be a still image.

    Can anyone help?

    opened by vpronaldo 1
  • Fix RTL interfaces

    Fix RTL interfaces

    RTL interfaces are broken: the dots move in the opposite direction and the user has to swipe in the opposite direction of their language. This PR fixes both issues. LTR languages are intact. Tested with both English (LTR) and Arabic (RTL).

    opened by aliemara 0
  • need RTL support for iOS and Android

    need RTL support for iOS and Android

    Hi there, thanks for providing an awesome library that made our app walk through screens very nice. I've one issue here that the library currently doesn't have any support for RTL (both iOS and Android). So can you please add this feature and make our life more easier :) Waiting for an early response. Thanks in advance

    opened by vinay-Bildarb 1
  • lil fix for rtl languages

    lil fix for rtl languages

    Hello! This is a fix for using this library with rtl (right to left, e.g. Arabic) languages. Without this fix, the position of the dots is not correct and could go out of screen. Of course, it will work the same when using ltr language.

    opened by MhmdSalah 0
Releases(6.1.4)
Owner
Ramotion
UI Engineering, UI/UX Design and Front-End Development Agency
Ramotion
Configurable animated onboarding screen written programmatically in Swift for UIKit

Configurable animated onboarding screen written programmatically in Swift for UIKit – inspired by many Apple-designed user interfaces in iOS – with Insignia as an example.

Lukman “Luke” Aščić 370 Dec 27, 2022
SwiftUI library for a walkthrough or onboarding flow with tap actions

Concentric Onboarding iOS library for a walkthrough or onboarding flow with tap actions written with SwiftUI We are a development agency building phen

Exyte 955 Jan 4, 2023
A swifty iOS framework that allows developers to create beautiful onboarding experiences.

SwiftyOnboard is being sponsored by the following tool; please help to support us by taking a look and signing up to a free trial SwiftyOnboard A simp

Juan Pablo Fernandez 1.2k Jan 2, 2023
An iOS framework to easily create a beautiful and engaging onboarding experience with only a few lines of code.

Onboard Click Here For More Examples Important Onboard is no longer under active development, and as such if you create any issues or submit pull requ

Mike 6.5k Dec 17, 2022
OnboardKit - Customizable user onboarding for your UIKit app in Swift

OnboardKit Customizable user onboarding for your UIKit app in Swift Requirements Swift 5.0 Xcode 10 iOS 11.0+ Installation Carthage github "NikolaKire

Nikola Kirev 470 Dec 23, 2022
An animated popover that pops out a given frame, great for subtle UI tips and onboarding.

Animated popover that pops out of a frame. You can specify the direction of the popover and the arrow that points to its origin. Color, border radius

Andrea Mazzini 3k Jan 8, 2023
DeliveryOnboardingSwiftUI - A Delivery Onboarding screen made with SwiftUI

DeliveryOnboardingSwiftUI Its a Onboarding screen made with SwiftUI

null 1 Feb 5, 2022
✨ An elegant way to guide your beloved users in iOS apps - Material Showcase.

Material Showcase for iOS An elegant and beautiful tap showcase view for iOS apps based on Material Design Guidelines. Requirement iOS 10.0+ Swift 4.2

Aromajoin 349 Dec 5, 2022
SwiftyWalkthrough is a library for creating great walkthrough experiences in your apps, written in Swift.

SwiftyWalkthrough is a library for creating great walkthrough experiences in your apps, written in Swift. You can use the library to allow users to navigate and explore your app, step by step, in a predefined way controlled by you.

Rui Costa 370 Nov 24, 2022
Simple coach mark library written in Swift

Minamo Simple coach mark library written in Swift Usage Initialize let rippeleView = RippleView() rippeleView.tintColor = UIColor(red: 0.3, green: 0.7

yukiasai 248 Nov 24, 2022
A simple keyframe-based animation framework for iOS, written in Swift. Perfect for scrolling app intros.

RazzleDazzle is a simple AutoLayout-friendly keyframe animation framework for iOS, written in Swift. Perfect for scrolling app intros. RazzleDazzle gr

IFTTT 3.4k Jan 1, 2023
An iOS framework to easily create simple animated walkthrough, written in Swift.

Intro Overview An iOS framework to easily create simple animated walkthrough, written in Swift. Requirements iOS8 Installation with CocoaPods Intro is

Nurdaulet Bolatov 33 Oct 1, 2021
BWWalkthrough is a simple library that helps you build custom walkthroughs for your iOS App

What is BWWalkthrough? BWWalkthrough (BWWT) is a class that helps you create Walkthroughs for your iOS Apps. It differs from other similar classes in

Yari @bitwaker 2.8k Jan 4, 2023
VideoSplashKit - UIViewController library for creating easy intro pages with background videos

VideoSplashKit - Video based UIViewController Introduction Requires iOS 8 or later and Xcode 6.1+ Swift support uses dynamic frameworks and is therefo

Sahin Boydas 1.2k Dec 28, 2022
Fully customisable tooltip view in Swift for iOS.

Description EasyTipView is a fully customizable tooltip view written in Swift that can be used as a call to action or informative tip. Contents Featur

Teo 2.9k Dec 27, 2022
SuggestionsKit is a framework for iOS that was created in order to provide developers with the opportunity to educate users on various features of applications.

SuggestionsKit is a framework for iOS that was created in order to provide developers with the opportunity to educate users

Ilya 63 Nov 30, 2022
WVWalkthroughView is an objective C based utility to highlight certain parts for iOS apps.

WVWalkthroughView A simple utility written in Objective C to help developers walk a user through their app. It allows a message to be displayed, a par

Praagya Joshi 29 Mar 25, 2021
Create walkthroughs and guided tours (coach marks) in a simple way, with Swift.

Add customizable coach marks into your iOS project. Available for both iPhone and iPad. ⚠️ Instructions 2.0.1 brings a couple of breaking changes, ple

Frédéric Maquin 4.9k Jan 3, 2023
A Swift Recreation of Attach-Detach, with some configurable options

Attach-Detach-Sw A Swift Recreation of Attach-Detach, with some configurable options Usage To use, you'll need to specify if you are attaching or deta

Serena 1 Dec 24, 2021