KLFUserInterfaceGuide

CI Status Version License Platform

Description

Lightweight and Easy to use ios library to make the user familiar with your app. it requires a view and a text and an optional tag so you will not worry about presentation next time, it will use the tag to set a flag on UserDefault. you can present it multiple time after each other it has queueing mechanism and you will not get UIViewController presentation error.

Installation

KLFUserInterfaceGuide is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'KLFUserInterfaceGuide'

Usage

import KLFUserInterfaceGuide

On your viewController call presentUserInterfaceGuide function

Simplest way to use:

// view: The view you are going to show guide for
// message: The message to show also can be `NSAttributedString`
presentUserInterfaceGuide(view: self.subview, message: "This is very beginning message!!!")

Also provides a bunch of presentation options:

// tag: will force the guide to show once not providing tag will present the guide every time
// dismissWhenTapedOutside: default behavior forces user to tap inside the box set this property to true so the guide will dismiss by tapping outside.
// decision: is '(CGPoint) -> Bool' closure passes the touchpoint of user in coordinate of view if return true means touchpoints is where it should be and guide will dismiss if false noting happens
// completion: will call after the completion of `UIViewController.dismiss()` called 

self.presentUserInterfaceGuide(view: subView, message: "This is very begining message!!!", tag: "view1", dismissWhenTapedOutside: true,
decision: { point in
    if self.subView.frame.contains(point) {
        self.subviewTapped()
        return true
    }
    return false
}, completion: {
     subViewTapped()
})

Configuration

You can set configuration everywhere but best place is didFinishLaunchingWithOptions in AppDelegate

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    
    var config = KLFUserInterfaceGuide.config

    //alpa of background of the guide
    config.alpha = 0.8
    //color of background of the guide
    config.background = .blue
    //margin of the box over the view
    config.rectMargin = 10
    //radius  of the box over the view
    config.rectRadius = 10
    //font of the message
    config.font = UIFont.systemFont(ofSize: 14)
    //alignment of the message
    config.textAlignment = .natural
    
    KLFUserInterfaceGuide.config = config
}

Author

jebelli.farhad@gmail.com, jebelli.farhad@gmail.com

License

KLFUserInterfaceGuide is available under the MIT license. See the LICENSE file for more info.