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

Related tags

UI Elissa
Overview

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.

You might also like...
An iOS Library that makes shadows management easy on UIView.
An iOS Library that makes shadows management easy on UIView.

ShadowView is an iOS Shadow library that makes view's shadow implementation easy and sweet 🎉 🎊 . Add simple shadows to add a gaussian blurred projec

High performance and lightweight UIView, UIImage, UIImageView, UIlabel, UIButton, Promise and more.

SwiftyUI High performance and lightweight UIView, UIImage, UIImageView, UIlabel, UIButton and more. Features SwiftyView GPU rendering Image and Color

Custom Beautiful UIView For Handling IDs in iOS
Custom Beautiful UIView For Handling IDs in iOS

IDView Custom Beautiful UIView For Handling IDs in iOS Setup Set the placeholder images for the front and back faces. override func viewDidLoad()

A framework which helps you attach observers to `UIView`s to get updates on its frame changes

FrameObserver is a framework that lets you attach observers to any UIView subclass and get notified when its size changes. It doesn't use any Method S

Easily use UIKit views in your SwiftUI applications. Create Xcode Previews for UIView elements
Easily use UIKit views in your SwiftUI applications. Create Xcode Previews for UIView elements

SwiftUIKitView Easily use UIKit views in SwiftUI. Convert UIView to SwiftUI View Create Xcode Previews from UIView elements SwiftUI functional updatin

A swift PropertyWrapper to provide automatic NSView/UIView invalidation when the properties value changes.

A swift PropertyWrapper to provide automatic NSView/UIView invalidation when the properties value changes. It duplicates the @Invalidating propertyWrapper for build targets prior to macOS 12 and iOS 15.

Easily add drop shadows, borders, and round corners to a UIView.

Easily add drop shadows, borders, rounded corners to a UIView. Installation CocoaPods Add the follwing to your Podfile: pod 'Shades' Usage Storyboard

Anchorage - Single file UIView drag and drop system
Anchorage - Single file UIView drag and drop system

anchorage Single file UIView drag and drop system anchors.mp4 License Copyright

AGCircularPicker is helpful component for creating a controller aimed to manage any calculated parameter
AGCircularPicker is helpful component for creating a controller aimed to manage any calculated parameter

We are pleased to offer you our new free lightweight plugin named AGCircularPicker. AGCircularPicker is helpful for creating a controller aimed to man

Comments
  • Swift 4.0 Compatability

    Swift 4.0 Compatability

    There are few errors in swift 4 with the library.

    1. static func showElissa(_ sourceView: UIView, configuration: ElissaConfiguration, completionHandler: (() -> Void)?) -> Elissa (addObserver line)

    2. public func showElissaFromTabbar(at index: Int, configuration: ElissaConfiguration, onTouchHandler: (() -> Void)?) (asyncAfter line)

    opened by cyurtbil 0
  • Elissa view doesn't automatically hide when tabbar is hidden

    Elissa view doesn't automatically hide when tabbar is hidden

    I am currently facing Elissa visibility issue. That is when a new controller is pushed into an tabbar existing controller, I set the hidesBottomBarWhenPushed property to 'true'. This eventually hides the tabbar at the bottom, but the issue Ellisa view is still there.

    Is there any walk around to resolve this issue?

    opened by asifbilal786 1
  • Make popup automatically fade after a timeout

    Make popup automatically fade after a timeout

    It would be useful to make the popup automatically go away after a configurable amount of time (duration). It would also be useful if you could configure a delay time, after which, the popup appears.

    opened by frakman1 0
  • Allow popup to appear `below` UIView

    Allow popup to appear `below` UIView

    Currently, the popup appear above the view. This is problematical when the view is along the top row of the window thus obscuring the Navigation Controller left and right buttons.

    It would be useful to specify in the configuration a way to make the popup appear below the attached UIView instead of above it.

    opened by frakman1 0
Releases(untagged-59c330ab3ec84251d690)
Owner
null
Twinkle is a Swift and easy way to make any UIView in your iOS or tvOS app twinkle.

Twinkle ✨ Twinkle is a Swift and easy way to make any UIView in your iOS or tvOS app twinkle. This library creates several CAEmitterLayers and animate

patrick piemonte 600 Nov 24, 2022
📹 Framework to Play a Video in the Background of any UIView

SwiftVideoBackground is an easy to use Swift framework that provides the ability to play a video on any UIView. This provides a beautiful UI for login

Wilson Ding 334 Jan 7, 2023
MZFormSheetPresentationController provides an alternative to the native iOS UIModalPresentationFormSheet, adding support for iPhone and additional opportunities to setup UIPresentationController size and feel form sheet.

MZFormSheetPresentationController MZFormSheetPresentationController provides an alternative to the native iOS UIModalPresentationFormSheet, adding sup

Michał Zaborowski 979 Nov 17, 2022
This widget displays a weight and a label. It can be used in the summary view for a strength assessment.

Strength Assessment Widget - Flutter Modern UI engineering is all about components. When we build components to be reusable, we enable faster iteratio

null 1 Feb 18, 2022
A simple, customizable view for efficiently collecting country information in iOS apps.

CountryPickerView CountryPickerView is a simple, customizable view for selecting countries in iOS apps. You can clone/download the repository and run

Kizito Nwose 459 Dec 27, 2022
Swift based simple information view with pointed arrow.

InfoView View to show small text information blocks with arrow pointed to another view.In most cases it will be a button that was pressed. Example To

Anatoliy Voropay 60 Feb 4, 2022
A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView and iPhone X safe area support for content reloading. Built for iOS 10 and later.

Arale A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView support for reloading your content. Built f

Putra Z. 43 Feb 4, 2022
An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.

LoadingShimmer An easy way to add a shimmering effect to any view with just single line of code. It is useful as an unobtrusive loading indicator. Thi

Jogendra 1.4k Jan 4, 2023
Simple battery shaped UIView

BatteryView Simple battery shaped UIView. Usage let batteryView = BatteryView(frame: smallRect) batteryView.level = 42 // anywhere in 0...100 batteryV

Yonat Sharon 50 Sep 19, 2022
UIView and CGRect extension that adds properties to manipulate them efficiently

Geometry Geometry is a UIView and CGRect extension that lets you work with view and rect geometry easier. It adds the following properties to UIView:

Tuomas Artman 92 Sep 7, 2022