Giter Site home page Giter Site logo

kopievdev / elissa Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kitchenstories/elissa

0.0 0.0 0.0 1.17 MB

Elissa displays a notification on top of a UITabBarItem or any UIView anchor view to reveal additional information.

License: MIT License

Ruby 12.55% Objective-C 3.50% Swift 83.94%

elissa's Introduction

Elissa

CI Status Version Carthage compatible License Platform

Attach a local notification to any UIView to reveal additional user guidance.

Usage

Example

Per default, Elissa will try to align to the center of the UITabBarItem. However she will never move out of sight to her parent’s view screen bounds. Therefor she applies an offset calculation that will also move the little arrow pointer accordingly.

To run the example project, clone the repo, and run pod install from the Example directory first.

Configuration

You can display Elissa according to your app’s theming by creating and passing a fully customisable configuration.

var elissaConfig = ElissaConfiguration()
elissaConfig.message = "Find your favorites here"
elissaConfig.image = UIImage(named: "heartIcon") ?? UIImage()
elissaConfig.font = UIFont.systemFontOfSize(17)
elissaConfig.textColor = UIColor(red: 91/255, green: 91/255, blue: 91/255, alpha: 1.0)
elissaConfig.backgroundColor = UIColor(red: 241/255, green: 215/255, blue: 85/255, alpha: 1.0)
ElissaConfiguration *elissaConfig = [ElissaConfiguration new];
elissaConfig.message = @"Find your favorites here";
elissaConfig.image = [UIImage imageNamed:@"heartIcon"];
elissaConfig.font = [UIFont systemFontOfSize:17];
elissaConfig.textColor = [UIColor redColor];
elissaConfig.backgroundColor = [UIColor greenColor];

Presentation

As of now there are two different API calls for rendering Elissa depending on the specific use case that is preferred. When presenting Elissa on top of a UITabBarItem you present from an instance of UIViewController:

showElissaFromTabbar(at: 4, configuration: elissaConfig) {            
    Elissa.dismiss()
}
[self showElissaFromTabbarAt:0 configuration:elissaConfig onTouchHandler:^{
    [Elissa dismiss];
}];

In this case Elissa is created and internally managed as a Singleton instance.

When attaching Elissa to any UIView you call the API from a containing view which owns an anchor view for Elissa (typically a parent => child relation):

myViewController.view.showELissa(fromSourceView: sourceView, configuration: elissaConfig) {
  // optionally do something
}
[myViewController.view showELissaFromSourceView:sourceView configuration: elissaConfig onTouchHandler:^{
  // optionally do something
}];

Please not that the latter API call creates and returns an instance of Elissa.

Installation

CocoaPods

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

pod "Elissa"

Carthage

To use Carthage, first make sure you have installed it and updated it to the latest version by following their instructions on their repo.

First, you add Elissa to your Cartfile:

github "KitchenStories/Elissa"

Then, run Carthage:

carthage update

Author

Kersten Broich, [email protected]

License

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

elissa's People

Contributors

broich avatar jkandzi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.