All Projects → aromajoin → Material Showcase Ios

aromajoin / Material Showcase Ios

Licence: other
✨ An elegant way to guide your beloved users in iOS apps - Material Showcase.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Material Showcase Ios

Material Playground
Polymer material design playground
Stars: ✭ 254 (-15.33%)
Mutual labels:  material-design, showcase
Githubfollows
A demo project based on MVVM architecture and material design & animations.
Stars: ✭ 272 (-9.33%)
Mutual labels:  material-design, material
Materiallettericon
Material first letter icon like lollipop contacts icon. Letter(s) on a shape drawn on canvas.
Stars: ✭ 255 (-15%)
Mutual labels:  material-design, material
Whatsnewkit
Showcase your awesome new app features 📱
Stars: ✭ 2,329 (+676.33%)
Mutual labels:  cocoapods, showcase
Primedatepicker
PrimeDatePicker is a tool that provides picking a single day, multiple days, and a range of days.
Stars: ✭ 292 (-2.67%)
Mutual labels:  material-design, material
Jjfloatingactionbutton
Floating Action Button for iOS
Stars: ✭ 243 (-19%)
Mutual labels:  cocoapods, material-design
Sequent
A simple continuous animation library for Android UI.
Stars: ✭ 263 (-12.33%)
Mutual labels:  material-design, material
Responsive scaffold
Responsive Scaffold - On mobile it shows a list and pushes to details and on tablet it shows the List and the selected item. Maintainer: @rodydavis
Stars: ✭ 238 (-20.67%)
Mutual labels:  material-design, material
Ng Notadd
In-middle background front-end solution based on angular material 基于Angular Material的中后台前端解决方案
Stars: ✭ 287 (-4.33%)
Mutual labels:  material-design, material
Progressstatusbar
Another way to show progress. A progress View over the system StatusBar.
Stars: ✭ 283 (-5.67%)
Mutual labels:  material-design, material
Materialactivityindicator
Material Activity Indicator
Stars: ✭ 109 (-63.67%)
Mutual labels:  cocoapods, material-design
Material Bread
Cross Platform React Native Material Design Components
Stars: ✭ 287 (-4.33%)
Mutual labels:  material-design, material
Materialdesignsymbol
Icon font library for Swift. Currently supports GoogleMaterialDesignIcons
Stars: ✭ 92 (-69.33%)
Mutual labels:  cocoapods, material-design
vue-material-input
Simple implementation of Material Input with no dependencies
Stars: ✭ 22 (-92.67%)
Mutual labels:  material, showcase
Ctshowcase
A simple to use Showcase library that can highlight arbitrary views in an iOS app
Stars: ✭ 73 (-75.67%)
Mutual labels:  cocoapods, showcase
Epiboard
Web Extension — A new tab page extension with material design and useful features 🆕 🎉
Stars: ✭ 262 (-12.67%)
Mutual labels:  material-design, material
Motion Shapeofview
Explain how to use MotionLayout with ShapeOfView
Stars: ✭ 236 (-21.33%)
Mutual labels:  material-design, material
Alyle Ui
Minimal Design, a set of components for Angular 9+
Stars: ✭ 234 (-22%)
Mutual labels:  material-design, material
Material Motion Js
Reusable gestural interactions in JavaScript. In development.
Stars: ✭ 277 (-7.67%)
Mutual labels:  material-design, material
Framework7
Full featured HTML framework for building iOS & Android apps
Stars: ✭ 16,560 (+5420%)
Mutual labels:  material-design, material

Material Showcase for iOS

Carthage compatible Download

An elegant and beautiful tap showcase view for iOS apps based on Material Design Guidelines.

Screenshots Screenshots

Requirement

  • iOS 10.0+
  • Swift 4.2+

Installation

CocoaPods

You can install it by using CocoaPods. Please add the following line to your Podfile.

pod 'MaterialShowcase'

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate MaterialShowcase into your Xcode project using Carthage, specify it in your Cartfile:

github "aromajoin/material-showcase-ios" ~> 0.7.3

Run carthage update to build the framework and drag the built MaterialShowcase.framework into your Xcode project.

Swift Package Manger

In the XCode, please select menu option "File" => "Swift Packages" => "Add package dependency..." Then, select the project you want to add the package, and enter this repository URL.

https://github.com/aromajoin/material-showcase-ios

Usage

Objective-C

In order to integrate the library into Object-C project, please follow the instructions from this doc.

Basic

  let showcase = MaterialShowcase()
  showcase.setTargetView(view: button) // always required to set targetView
  showcase.primaryText = "Action 1"
  showcase.secondaryText = "Click here to go into details"
  showcase.show(completion: {
    // You can save showcase state here
    // Later you can check and do not show it again
  })

Note: showcase.show() should be called after your views are placed correctly, for example inside UIViewController's viewWillAppear() or viewDidAppear() function. You SHOULD NOT call it inside viewDidLoad() because views have not laid down correctly yet, showcase can not calculate these views positions and it results in unexpected errors.

Supported target views

There are several target view supported.

  // Any UIView
  showcase.setTargetView(view: view)
  // UIBarButtonItem
  showcase.setTargetView(barButtonItem: barItem)
  // UITabBar item
  showcase.setTargetView(tabBar: tabBar, itemIndex: 0)
  // UItableViewCell
  showcase.setTargetView(tableView: tableView, section: 0, row: 0)

Enable TapThrough

By default, tapping a showcase's target does not perform it's predefined action. This can be overridden.

  // UIButton
  showcase.setTargetView(button: button, tapThrough: true)
  // UIBarButtonItem
  showcase.setTargetView(barButtonItem: barItem, tapThrough: true)
  // UITabBar item
  showcase.setTargetView(tabBar: tabBar, itemIndex: 0, tapThrough: true)

Handle showcase status

  // Right after showing.
  showcase.show(completion: {
    // You can save showcase state here
  })

  // To handle other behaviors when showcase is dismissing, delegate should be declared.
  showcase.delegate = self

  extension ViewController: MaterialShowcaseDelegate {
    func showCaseWillDismiss(showcase: MaterialShowcase, didTapTarget: Bool) {
      print("Showcase \(showcase.primaryText) will dismiss.")
    }
    func showCaseDidDismiss(showcase: MaterialShowcase, didTapTarget: Bool) {
      print("Showcase \(showcase.primaryText) dimissed.")
    }
  }

Dismiss showcase programmatically

  showcase.completeShowcase(animated: true, didTapTarget: false)

Support both LTR and RTL text alignment

In default, text aligment is set to be left-to-right. If you want to show text in right-to-left direction. Please define following.

showcase.primaryTextAlignment = .right
showcase.secondaryTextAlignment = .right

Dismiss showcase only if users click to target view

In default, showcase will be dismissed when users click to any place in whole showcase view. If you want to dismiss showcase only when users click to target view correctly, please set the following property.

showcase.isTapRecognizerForTargetView = true

Customize UI properties

You can define your own styles based on your app.

  // Background
  showcase.backgroundAlpha = 0.9
  showcase.backgroundPromptColor = UIColor.blue
  showcase.backgroundPromptColorAlpha = 0.96
  showcase.backgroundViewType = .full // default is .circle
  showcase.backgroundRadius = 300
  // Target
  showcase.targetTintColor = UIColor.blue
  showcase.targetHolderRadius = 44
  showcase.targetHolderColor = UIColor.white
  // Text
  showcase.primaryTextColor = UIColor.white
  showcase.secondaryTextColor = UIColor.white
  showcase.primaryTextSize = 20
  showcase.secondaryTextSize = 15
  showcase.primaryTextFont = UIFont.boldSystemFont(ofSize: primaryTextSize)
  showcase.secondaryTextFont = UIFont.systemFont(ofSize: secondaryTextSize)
  //Alignment
  showcase.primaryTextAlignment = .left
  showcase.secondaryTextAlignment = .left
  // Animation
  showcase.aniComeInDuration = 0.5 // unit: second
  showcase.aniGoOutDuration = 0.5 // unit: second
  showcase.aniRippleScale = 1.5
  showcase.aniRippleColor = UIColor.white
  showcase.aniRippleAlpha = 0.2
  //...

Sequence items

You can define showcase items and create sequence.

If you set key param sequence visible just one time or key is empty will always show be repeated

Always appear

  let sequence = MaterialShowcaseSequence()
  let showcase2 = MaterialShowcase()
  let showcase3 = MaterialShowcase()
  let showcase1 = MaterialShowcase()
  showcase1.delegate = self
  showcase2.delegate = self
  showcase3.delegate = self
  sequence.temp(showcase1).temp(showcase2).temp(showcase3).start()

Will appear once so we have key

  let sequence = MaterialShowcaseSequence()
  let showcase2 = MaterialShowcase()
  let showcase3 = MaterialShowcase()
  let showcase1 = MaterialShowcase()
  showcase1.delegate = self
  showcase2.delegate = self
  showcase3.delegate = self
  //Once the key value changes , it will appear once
  sequence.temp(showcase1).temp(showcase2).temp(showcase3).setKey(key: "temp").start()

Must extends MaterialShowCaseDelegate and This code into showCaseDidDismiss function

extension ViewController: MaterialShowcaseDelegate {
    func showCaseDidDismiss(showcase: MaterialShowcase, didTapTarget: Bool) {
        sequence.showCaseWillDismis()
    }
}

For more information, please take a look at sample app.

If you have any issues or feedback, please visit issue section. Please feel free to create a pull request.

Third Party Bindings

React Native

For React Native developers, you can use this library via its binding bridge created by @prscX.

NativeScript

For NativeScript developers, you can use this library via 3rd party plugin created by @hamdiwanis.

FAQ

Please check the FAQ page here.

License

Material Showcase is available under the Apache license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].