Skip to content
[iOS] Easy, customizable notifications displayed on top of the statusbar. With progress and activity. iPhone X ready.
Branch: master
Clone or download
Latest commit 0151265 Sep 10, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ExampleProject reindent codebase with 2 spaces Sep 10, 2018
JDStatusBarNotification.xcodeproj
JDStatusBarNotification
Miscellaneous
gfx update iPhoneX docs Sep 10, 2018
.gitignore update example podfile, remove pods from repo Oct 9, 2017
JDStatusBarNotification.podspec
LICENSE
README.md update iPhoneX docs Sep 10, 2018

README.md

JDStatusBarNotification

Show messages on top of the status bar. Customizable colors, font and animation. Supports progress display and can show an activity indicator. iOS 6+ support, iPhone X support. Please open a Github issue, if you think anything is missing or wrong.

Animation

Animation

Screenshots

Installation

CocoaPods:

pod 'JDStatusBarNotification'

(For infos on cocoapods, have a look at the cocoapods website)

Manually:

  1. Drag the JDStatusBarNotification/JDStatusBarNotification folder into your project.
  2. Add #include "JDStatusBarNotification.h", where you want to use it

Carthage:

github "calimarkus/JDStatusBarNotification"

(more infos on Carthage here)

Beware: App Rejections

Some people informed me, that their apps got rejected for using status bar overlays (for violating 10.1/10.3). All cases I'm aware of are listed here:

Usage

JDStatusBarNotification is a singleton. You don't need to initialize it anywhere. Just use the following class methods:

Showing a notification

+ (JDStatusBarView*)showWithStatus:(NSString *)status;
+ (JDStatusBarView*)showWithStatus:(NSString *)status
                      dismissAfter:(NSTimeInterval)timeInterval;

The return value will be the notification view. You can just ignore it, but if you need further customization, this is where you can access the view.

Dismissing a notification

+ (void)dismiss;
+ (void)dismissAfter:(NSTimeInterval)delay;

Showing progress

Progress animation

+ (void)showProgress:(CGFloat)progress;  // Range: 0.0 - 1.0

Showing activity

Activity screenshot

+ (void)showActivityIndicator:(BOOL)show
               indicatorStyle:(UIActivityIndicatorViewStyle)style;

Showing a notification with alternative styles

Included styles:

Use them with the following methods:

+ (JDStatusBarView*)showWithStatus:(NSString *)status
                         styleName:(NSString*)styleName;

+ (JDStatusBarView*)showWithStatus:(NSString *)status
                      dismissAfter:(NSTimeInterval)timeInterval
                         styleName:(NSString*)styleName;

To present a notification using a custom style, use the identifier you specified in addStyleNamed:prepare:. See Customization below.

Customization

+ (void)setDefaultStyle:(JDPrepareStyleBlock)prepareBlock;

+ (NSString*)addStyleNamed:(NSString*)identifier
                   prepare:(JDPrepareStyleBlock)prepareBlock;

The prepareBlock gives you a copy of the default style, which can be modified as you like:

[JDStatusBarNotification addStyleNamed:<#identifier#>
                               prepare:^JDStatusBarStyle*(JDStatusBarStyle *style) {
                               
                                   // main properties
                                   style.barColor = <#color#>;
                                   style.textColor = <#color#>;
                                   style.font = <#font#>;
                                   
                                   // advanced properties
                                   style.animationType = <#type#>;
                                   style.textShadow = <#shadow#>;
                                   style.textVerticalPositionAdjustment = <#adjustment#>;

                                   // progress bar
                                   style.progressBarColor = <#color#>;
                                   style.progressBarHeight = <#height#>;
                                   style.progressBarPosition = <#position#>;

                                   return style;
                               }];

Animation Types

  • JDStatusBarAnimationTypeNone
  • JDStatusBarAnimationTypeMove
  • JDStatusBarAnimationTypeBounce
  • JDStatusBarAnimationTypeFade

Progress Bar Positions

  • JDStatusBarProgressBarPositionBottom
  • JDStatusBarProgressBarPositionCenter
  • JDStatusBarProgressBarPositionTop
  • JDStatusBarProgressBarPositionBelow
  • JDStatusBarProgressBarPositionNavBar

iPhone X behavior

  • JDStatusBarHeightForIPhoneXHalf
  • JDStatusBarHeightForIPhoneXFullNavBar

Twitter

I'm @calimarkus on Twitter. Feel free to post a tweet, if you like JDStatusBarNotification.

TweetButton

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.