A crisp in-app notification/message banner built in Swift.

Overview

RMessage

Twitter: @donileo Version License Platform

Screenshots

ErrorUnder

SuccessUnder

ErrorOver

WarningOver

Intro

Welcome to RMessage! RMessage is a simple notification library written in Swift to help you display notification on the screen. Many many customization options are available such as what position of the screen to present in, what colors should be applied to the title, body, background, etc, etc. There are many customizable properties and they can be viewed at the RMessageSpec protocol definition in the RMessageSpec file.

Get in contact with the developer on Twitter: donileo (Adonis Peralta)

3.0.0 Release

RMessage 3.0.0 is finally here with many new features from 2.x.x:

  • Rewritten in Swift.
  • Message notification designs are now easily specified in code via the RMessageSpec protocol - no more passing in design styles via a json design file.
  • Support for generic UIViews for the Left/Right/Background of the message. Want to pass a UIButton for the left view or background view? Go ahead.
  • Support for Attributed string stylings.
  • Support for new message duration types such as messages that can only be dismissed by tapping, or swiping, or both.
  • Support for canceling messages already in the queue waiting to be presented.
  • Support for Carthage.
  • Groundwork for custom animator objects via the RMessageAnimator Protocol has been set, support for passing in your own animators coming soon.

Note: RMessage now requires iOS 11.0 and Swift 4.1. So be sure you are ok with not supporting devices below these targets when using RMessage. If you aren't ready to commit to these version of iOS yet feel free to use RMessage 2.x.x until you can.

Installation

CocoaPods

For installation via CocoaPods add the following line to your Podfile:

pod "RMessage" #This will install the latest
#pod "RMessage", '~> 2.3.0' # This will install RMessage versions of 2.3.x based on ObjC

Carthage

For installation via Carthage add the following line to your Cartfile:

github "donileo/RMessage" ~> 3.0

Manually

For manual installation copy the all the source files in the Sources folder to your project.

Usage

To show a simple notification using the predefined "errorSpec" styling, animating from the top do the following:

// Create an instance of RMController, a controller object which handles the presentation
// of multiples messages on the screen
let rControl = RMController()

// Tell rControl to present the message
rControl.showMessage(
      withSpec: errorSpec,
      title: "Your Title",
      body: "A description"
)

To show your own button on the right, an icon (UIImage) on the left and animate from the bottom do this:

let rControl = RMController()
rControl.showMessage(
      withSpec: normalSpec,
      atPosition: .bottom,
      title: "Update available",
      body: "Please update the app",
      leftView: myIconImage,
      rightView: myUIButtonHere
)

To set a default view controller to present in and bypass the "internal presentation view controller detection":

   let rControl = RMController()
   rControl.presentationViewController = myViewController

   ...

   // All messages now presented by this controller will always be on myViewController
   rControl.showMessage(....)

Want to further customize a notification message right before its presented? Do the following:

   let rControl = RMController()
   rControl.delegate = self

   ...

   // Now lets implement the RMControllerDelegate customize(message:controller:) method which
   // RMController calls right before presenting:
   func customize(message: RMessage) {
   message.alpha = 0.4
   message.addSubview(aView)
  }

Feel like declaring your own custom message stylings? Simple!

let rControl = RMController()

// Customize the message, by using the DefaultRMessageSpec as your base.
// The DefaultRMessageSpec object is a struct with default values for a
// "default" RMessageSpec styling. All we need to do is pick up the the defaults
// from it and then just specify which variables we want customized. For a list
// of all the possible vars take a look at its definition!
var customSpec = DefaultRMessageSpec()
customSpec.backgroundColor = .red
customSpec.titleColor = .white
customSpec.bodyColor = .white
customSpec.iconImage = UIImage(named: "MyIcon.png")

// How about a custom spec based on the predefined warningSpec but with
// attributed string attributes for the title and body text?
var attrWarningSpec = warningSpec
attrWarningSpec.titleAttributes = [.backgroundColor: UIColor.red, .foregroundColor: UIColor.white]
attrWarningSpec.bodyAttributes = [
.backgroundColor: UIColor.blue, .foregroundColor: UIColor.white,
.underlineStyle: NSUnderlineStyle.styleSingle.rawValue,
]

// Now lets present Tell the RMController to present the message with your custom stylings.
rControl.showMessage(
      withSpec: customSpec,
      title: "I'm custom",
      body: "Nice!"
    )

Want to present a message that only disappers when tapped?

let rControl = RMController()

var tapOnlySpec = DefaultRMessageSpec()
tapOnlySpec.durationType = .tap

// Present it
rControl.showMessage(
      withSpec: tapOnlySpec,
      title: "Tap me Tap me!",
      body: "If you don't I wont dismiss!"
)

Want more examples? Take a look at the DemoViewController file in the RMessage project to see how to use this library. Its very simple.

License

RMessage is available under the MIT license. See the LICENSE file for more information.

Recent Changes

Can be found in the releases section of this repo.

Comments
  • Could not load NIB in bundle: 'NSBundle  (loaded)' with name 'RMessageView'

    Could not load NIB in bundle: 'NSBundle (loaded)' with name 'RMessageView'

    Hi,

    I recently updated an app that uses RMessage (which I am using for long time), however, some apps crash with the following message:

    Could not load NIB in bundle: 'NSBundle (loaded)' with name 'RMessageView'

    Using it in iOS 13.3 on an iPad.

    Any ideas?

    opened by martin072 29
  • [Issue] [iPhone X] Notification banner is too short, doesn't extend down far enough to display title.

    [Issue] [iPhone X] Notification banner is too short, doesn't extend down far enough to display title.

    Hi there!

    I just started testing on iPhone X and noticed that the top banner (when no nav bar is present) doesn't extend down far enough to show the title and description properly.

    This is obviously due to the weird new height measurements of iPhone X's nav bar but I was wondering if this is already a solved issue or if there's something I should be specifically doing to solve this?

    Thanks!

    This is the code I'm using:

    [RMessage showNotificationWithTitle:@"Important account change"
                                   subtitle:@"You have been logged out due to an important account change."
                                       type:RMessageTypeCustom
                             customTypeName:mProfileStyleKey
                                   callback:nil];
    
    opened by harrytutorful 20
  • A bunch of crashes on live

    A bunch of crashes on live

    Maybe this is related to #34 but after deploying the app on live we are getting three crashes in Crashlytics. Testing on various devices locally didn't turn anything up.

    I'll add the three stacks which seem to center around _findCommonAncestorOfItem:andItem and _setActive:mutuallyExclusiveConstraints.

    #0. Crashed: com.apple.main-thread
    0  libobjc.A.dylib                0x1848f843c objc_msgSend + 28
    1  Foundation                     0x1861b5dbc +[NSLayoutConstraint _findCommonAncestorOfItem:andItem:] + 140
    2  Foundation                     0x1861b5868 -[NSLayoutConstraint _setActive:mutuallyExclusiveConstraints:] + 164
    3  RMessage                       0x103a95584 __38-[RMessageView dismissWithCompletion:]_block_invoke_2 + 220
    4  UIKit                          0x18ec8a980 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 620
    5  UIKit                          0x18edba070 +[UIView(UIViewAnimationWithBlocks) animateWithDuration:animations:completion:] + 100
    6  RMessage                       0x103a95478 __38-[RMessageView dismissWithCompletion:]_block_invoke + 216
    7  libdispatch.dylib              0x18501aa54 _dispatch_call_block_and_release + 24
    8  libdispatch.dylib              0x18501aa14 _dispatch_client_callout + 16
    9  libdispatch.dylib              0x185027698 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1016
    10 CoreFoundation                 0x185643344 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
    11 CoreFoundation                 0x185640f20 __CFRunLoopRun + 2012
    12 CoreFoundation                 0x185560c58 CFRunLoopRunSpecific + 436
    13 GraphicsServices               0x18740cf84 GSEventRunModal + 100
    14 UIKit                          0x18ecb95c4 UIApplicationMain + 236
    15 Volders                        0x102a7fd14 main (main.m:15)
    16 libdyld.dylib                  0x18508056c start + 4
    
    #0. Crashed: com.twitter.crashlytics.ios.exception
    0  Volders                        0x100903290 CLSProcessRecordAllThreads + 4307612304
    1  Volders                        0x100903290 CLSProcessRecordAllThreads + 4307612304
    2  Volders                        0x10090314c CLSProcessRecordAllThreads + 4307611980
    3  Volders                        0x1008f2e8c CLSHandler + 4307545740
    4  Volders                        0x100901298 __CLSExceptionRecord_block_invoke + 4307604120
    5  libdispatch.dylib              0x182038a2c _dispatch_client_callout + 16
    6  libdispatch.dylib              0x182075e54 _dispatch_queue_barrier_sync_invoke_and_complete + 56
    7  Volders                        0x100900d2c CLSExceptionRecord + 4307602732
    8  Volders                        0x100900b54 CLSExceptionRecordNSException + 4307602260
    9  Volders                        0x100900768 CLSTerminateHandler() + 4307601256
    10 libc++abi.dylib                0x1818f137c std::__terminate(void (*)()) + 16
    11 libc++abi.dylib                0x1818f0ccc __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 130
    12 libobjc.A.dylib                0x181900720 _objc_exception_destructor(void*) + 362
    13 CoreFoundation                 0x182745548 __methodDescriptionForSelector + 138
    14 CoreFoundation                 0x18273da74 ___forwarding___ + 1380
    15 CoreFoundation                 0x182623b0c _CF_forwarding_prep_0 + 92
    16 Foundation                     0x183293044 +[NSLayoutConstraint _findCommonAncestorOfItem:andItem:] + 140
    17 Foundation                     0x183292af8 -[NSLayoutConstraint _setActive:mutuallyExclusiveConstraints:] + 164
    18 RMessage                       0x101809584 __38-[RMessageView dismissWithCompletion:]_block_invoke_2 + 220
    19 UIKit                          0x18ca199f4 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 608
    20 UIKit                          0x18cb46b88 +[UIView(UIViewAnimationWithBlocks) animateWithDuration:animations:completion:] + 100
    21 RMessage                       0x101809478 __38-[RMessageView dismissWithCompletion:]_block_invoke + 216
    22 libdispatch.dylib              0x182038a6c _dispatch_call_block_and_release + 24
    23 libdispatch.dylib              0x182038a2c _dispatch_client_callout + 16
    24 libdispatch.dylib              0x182079d00 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 964
    25 CoreFoundation                 0x1826e0660 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
    26 CoreFoundation                 0x1826de1b8 __CFRunLoopRun + 2272
    27 CoreFoundation                 0x1825fe498 CFRunLoopRunSpecific + 552
    28 GraphicsServices               0x1845bf020 GSEventRunModal + 100
    29 UIKit                          0x18ca4821c UIApplicationMain + 236
    30 Volders                        0x1007e7d14 main (main.m:15)
    31 libdyld.dylib                  0x18209dfc0 start + 4
    
    #0. Crashed: com.twitter.crashlytics.ios.exception
    0  Volders                        0x10441b290 CLSProcessRecordAllThreads + 4377440912
    1  Volders                        0x10441b290 CLSProcessRecordAllThreads + 4377440912
    2  Volders                        0x10441b14c CLSProcessRecordAllThreads + 4377440588
    3  Volders                        0x10440ae8c CLSHandler + 4377374348
    4  Volders                        0x104419298 __CLSExceptionRecord_block_invoke + 4377432728
    5  libdispatch.dylib              0x1849faa14 _dispatch_client_callout + 16
    6  libdispatch.dylib              0x184a37d4c _dispatch_queue_barrier_sync_invoke_and_complete + 56
    7  Volders                        0x104418d2c CLSExceptionRecord + 4377431340
    8  Volders                        0x104418b54 CLSExceptionRecordNSException + 4377430868
    9  Volders                        0x104418768 CLSTerminateHandler() + 4377429864
    10 libc++abi.dylib                0x1842b454c std::__terminate(void (*)()) + 16
    11 libc++abi.dylib                0x1842b3ea8 __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 134
    12 libobjc.A.dylib                0x1842c465c _objc_exception_destructor(void*) + 362
    13 CoreFoundation                 0x18507b0ac -[NSException initWithCoder:] + 114
    14 Foundation                     0x185b958f4 -[NSLayoutConstraint _setActive:mutuallyExclusiveConstraints:] + 304
    15 RMessage                       0x105315584 __38-[RMessageView dismissWithCompletion:]_block_invoke_2 + 220
    16 UIKit                          0x18e66a980 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 620
    17 UIKit                          0x18e79a070 +[UIView(UIViewAnimationWithBlocks) animateWithDuration:animations:completion:] + 100
    18 RMessage                       0x105315478 __38-[RMessageView dismissWithCompletion:]_block_invoke + 216
    19 libdispatch.dylib              0x1849faa54 _dispatch_call_block_and_release + 24
    20 libdispatch.dylib              0x1849faa14 _dispatch_client_callout + 16
    21 libdispatch.dylib              0x184a3bc80 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 968
    22 CoreFoundation                 0x185023344 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
    23 CoreFoundation                 0x185020f20 __CFRunLoopRun + 2012
    24 CoreFoundation                 0x184f40c58 CFRunLoopRunSpecific + 436
    25 GraphicsServices               0x186decf84 GSEventRunModal + 100
    26 UIKit                          0x18e6995c4 UIApplicationMain + 236
    27 Volders                        0x1042ffd14 main (main.m:15)
    28 libdyld.dylib                  0x184a6056c start + 4
    
    opened by alper 16
  • Crash

    Crash

    Hi,

    I again have crash of RMessage: pod 'RMessage', :git => 'https://github.com/donileo/RMessage.git', :commit => '9e87b0d'

    It's on the line 1127 of the RMessageView.m (self.topToVCLayoutConstraint.active = YES;)

    Here I am sending you video where I am uploading files, then showing success message. First file went well, but second got stuck. (Sometimes first got stuck)

    I think it's something due UITableView reload and showing RMessage in "same time".

    video: https://streamable.com/mecc8

    opened by dtomicAZ 15
  • Above Controller

    Above Controller

    I find it confusing for people to use it. The Issue is, that a Notification is displayed onto of the current Content. This should be a Subview in Navigationbar and pushes the content further down.

    If you have a scroll list with Large Title and start to scroll the Large title becomes small and the notification is stuck in the upper part of the screen.

    Wasn't able to solve it myself :(

    opened by Bluesky13503 15
  • Display issues in UITableViewController on iOS 10

    Display issues in UITableViewController on iOS 10

    Notifications are display below the Navigation Bar with empty space on top (that space should be behind the navigation bar I guess)

    I use the Objective C version. So far this issue only appeared on iOS 10 in an UITableViewController. In UIViewController it works fine.

    opened by svenniemann 14
  • blur effect not working in ios 11?

    blur effect not working in ios 11?

    Hello. After long time i write new project that need to include some notification view, then I used your library, thanks for great code.

    After run app in ios 11. I see the blur effect not working as expect. Plz see my attack picture to see my problem. This image is captured from simulator. Then below is my setting "warning": { "backgroundColor": "#FFCC00", "backgroundColorAlpha": 0.3, "titleTextColor": "#484638", "titleFontSize": 14, "subTitleFontSize": 12, "subTitleTextColor": "#484638", "iconImage": "NotificationBackgroundWarningIcon.png", "blurBackground": 1 }, simulator screen shot - iphone 5s - 2018-03-30 at 22 30 38

    opened by fukemy 9
  • Crash

    Crash

    I updated my pods and I get this error: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'

    as this line 986: [messageNavigationController.view insertSubview:self belowSubview:messageNavigationController.navigationBar];

    I have this in my pod file: pod 'RMessage', :git => 'https://github.com/donileo/RMessage.git', :branch => 'develop'

    I use iPhone 6s, iOS 11.2

    opened by dtomicAZ 9
  • Fix crash: firstObject is more secure because it returns nil

    Fix crash: firstObject is more secure because it returns nil

    In some situations the framework crashes because the dispatch is asyncrhonous and it is accesing to the object with zero index, so to fix it it is better to use "firsObject" method because it returns nil and it does not crash.

    opened by asam139 9
  • Crash on presentMessageView

    Crash on presentMessageView

    We have a crash on presentMessageView that we can't quite wrap our head around.

    Here are two screenshots from the stacktrace.

    screen shot 2017-04-06 at 12 52 42 screen shot 2017-04-06 at 12 52 27

    Have you experienced this crash before?

    opened by pmagnussen 8
  • If a custom image is not found try to load it from the app bundle.

    If a custom image is not found try to load it from the app bundle.

    When an image name is specified in the custom design file the images will be loaded from the RMessageView bundle. Using this PR, if this image is not found it will try to load it from the app Bundle. This makes it possible to provide custom images in the app Bundle.

    opened by baspellis 7
Releases(2.3.4)
  • 2.3.4(Jun 5, 2020)

    • Properly handle reading from bundle when Cocoapods is used with use_frameworks!.
    • Properly read icon images specified in json design files from user App bundle with a fallback to the framework bundle if needed.
    Source code(tar.gz)
    Source code(zip)
  • 2.3.3(May 26, 2020)

  • 3.0.3(May 10, 2019)

    Fixes:

    • Fix broken topViewController traversal logic. This bug would cause RMessage to potentially go into an infinite loop when being asked to present from a modal.

    Misc:

    • Constraint activation tweaks and some code cleanup.
    Source code(tar.gz)
    Source code(zip)
  • 3.0.2(Feb 6, 2019)

  • 3.0.1(Oct 11, 2018)

    Bug fixes:

    • Fix the dismiss, tap, and swipe completions not working.

    Internal:

    • Don't include the binary framework so as to allow building RMessage without having to build for the latest Swift.
    • Swift Format tweaks.
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Sep 10, 2018)

    • Rewritten in Swift 🎉.
    • Message notification designs are now easily specified in code via the RMessageSpec protocol - no more passing in design styles via a json design file.
    • Support for generic UIViews for the Left/Right/Background of the message. Want to pass a UIButton for the left view or background view? Go ahead.
    • Support for Attributed string stylings.
    • Support for new message duration types such as messages that can only be dismissed by tapping, or swiping, or both.
    • Support for canceling messages already in the queue waiting to be presented.
    • Support for Carthage.
    • Groundwork for custom animator objects via the RMessageAnimator Protocol has been set, support for passing in your own animators coming soon.

    Note: RMessage now requires requires iOS 11.0 and Swift 4.1

    Source code(tar.gz)
    Source code(zip)
  • 2.3.2(Aug 9, 2018)

    Bug Fixes

    • Fixes RMessage presentation in the existing presence of safe areas/layout guides in iOS7+, or the introduction of safe areas while RMessage is presenting.
    • Fixes icon image vertical spacing to the top in cases where the icon image is much larger than the text content provided by the message.
    Source code(tar.gz)
    Source code(zip)
  • 2.3.1(Jul 3, 2018)

    Bug Fixes

    • Fixes crash reported in #35 where RMessage's layout information would change between instantiation and presentation.

    Internal

    • Fixes UITests to properly run again.
    Source code(tar.gz)
    Source code(zip)
  • 2.3.0(Apr 13, 2018)

    Features:

    • Ability to tint icon image via design file property: iconImageTintColor. Icon image must be set as a template image in Xcode.
    • Tweak default presentation of message to not appear as if spring animation is overshooting and presenting a visual gap. This can be disabled via design file property: disableSpringAnimationPadding.
    • Allow corner rounding to be applied to message view via design file property: cornerRadius. Note: When using this property you most likely want to set the disableSpringAnimationPadding property to 1.

    BugFixes:

    • Fix message presentation/animation on iPhone X.

    Internal:

    • Add standard view controller tests.
    Source code(tar.gz)
    Source code(zip)
  • 2.2.2(Mar 14, 2018)

    Bugfixes

    • Fix bottom presentation when presenting in a view not contained by a navigation controller.
    • Guard some iOS8+ specific constraint calls from executing on devices running below iOS8.
    • Guard UIBlurEffect and UIVisualEffectView API calls from being executed on deployment targets below iOS 8 to prevent crashes. The blurBackground custom design file property now does nothing on devices running below iOS8.
    • Tests: Fix a float precision comparison error causing some UI tests to incorrectly fail.
    Source code(tar.gz)
    Source code(zip)
  • 2.2.1(Feb 23, 2018)

  • 2.2.0(Feb 22, 2018)

    Features:

    • Ability to embed a UIButton
    • Ability to size to fit title/subtitle labels via the titleSubtitleLabelsSizeToFit property of RMessageView. Setting this property to true will prevent the labels from expanding to the width of the message
    • Added new methods taking presentingCompletion and dismissCompletion callback blocks, which get called on presentation/dismissal of the message

    BugFixes:

    • Fix a crash generated by a UIAppearance proxy bug.
    • Fix incorrect tap callback logic which would get called on dismissal of the message instead of exactly when user taps on message.
    • Fix tap callback not being called on an EndlessDuration type message.

    Misc:

    • Add starter UITests and UnitTests
    • Code cleanup and refactoring of layout and animation.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.5(Sep 21, 2017)

  • 2.1.3(Mar 26, 2017)

    Background of message can now have a blur effect applied via the design file. (https://github.com/donileo/RMessage/commit/820a257da827ae1ab3fb851af0d5af409e382ec0) Title and subtitle can now have their text alignment specified via the design file. (https://github.com/donileo/RMessage/commit/33cdaced9feecc539acda371b6c256145562581d) Bug fixes.

    Source code(tar.gz)
    Source code(zip)
  • 2.1.2(Jan 12, 2017)

    Allow RMessage to animate properly when building with iOS 10 and higher. Some slight initial positioning fixes when presenting. Setup layout constraints on initialization, not presentation. Maintain support with iOS 7 as the minimum baseline.

    Source code(tar.gz)
    Source code(zip)
  • 2.1.1(Jan 24, 2017)

    Invalid Release (Please use 2.1.2) This release though functionally working improperly dropped support for versions of iOS below 9.0. As per conforming with semantic version RMessage will not deprecate support for specific iOS versions without it being a major version number change. For the sake of not deleting Pod version 2.1.1 this tag was allowed to live, though changed to pre-release. Do not use this this tag for any reason, and if your Podfile pins to 2.1.1 please change that to 2.1.2. An upcoming version of RMessage will drop support for versions of iOS below 9.0 as originally planned but again, that'll be a major version release.

    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Jul 10, 2016)

    Some Small Bug Fixes. Autolayout Centering Fixes. Better Under Top Bars Detection. Slight tweaks to Default Colors Tweak to be less drab. Allow applying corner rounding to the icon image in an RMessage via the "iconImageRelativeCornerRadius" field in the style file.

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Feb 15, 2016)

    ChangeLog

    • Breaking Changes:
      • The callback block for when the user taps on the notification has been added to all notification invocation methods giving it higher precedence - previously only the more explicit calls allowed specifying the callback block.
      • CustomTypeString has been changed to customTypeName.
    • Fixes: Fixed an issue of RMessage incorrectly loading its nibs from mainBundle instead of the bundle from the class.
    • Documentation:
      • Removed references to Rendezvous, Inc.
      • Started the process of removing references to tweetbot.
    Source code(tar.gz)
    Source code(zip)
Owner
Adonis Peralta
Adonis Peralta
A message bar for iOS written in Swift.

Dodo, a message bar for iOS / Swift This is a UI widget for showing text messages in iOS apps. It is useful for showing short messages to the user, so

Evgenii Neumerzhitckii 874 Dec 13, 2022
A message bar for iOS written in Swift.

Dodo, a message bar for iOS / Swift This is a UI widget for showing text messages in iOS apps. It is useful for showing short messages to the user, so

Evgenii Neumerzhitckii 874 Dec 13, 2022
Native alert from Apple Music & Feedback. Contains Done, Heart & Message and other presets.

SPAlert Popup from Apple Music & Feedback in AppStore. Contains Done, Heart, Error and other presets. Supports Dark Mode. I tried to recreate Apple's

Ivan Vorobei 1.8k Jan 7, 2023
zekunyan 608 Dec 30, 2022
Native alert from Apple Music & Feedback. Contains Done, Heart & Message and other presets. Support SwiftUI.

SPAlert Popup from Apple Music & Feedback in AppStore. Contains Done, Heart, Error and other presets. Supports Dark Mode. I tried to recreate Apple's

Ivan Vorobei 1.4k Dec 10, 2021
Swift library to manage in app notification in swift language, like WhatsApp, Telegram, Frind, ecc.

InAppNotify - Manage in App notifications During develop of my app Frind, I needed to manage in app notifications like whatsapp or telegram, but i did

Luca Becchetti 438 Nov 20, 2022
In-app notification in Swift, with customizable buttons and input text field.

Notie Undistracted in-app notification in Swift, with added buttons and input box. Installation CocoaPods To integrate Notie into your Xcode project u

Thi Doãn 85 Aug 8, 2020
The easiest way to display highly customizable in app notification banners in iOS

Written in Swift 5 NotificationBanner is an extremely customizable and lightweight library that makes the task of displaying in app notification banne

Dalton Hinterscher 4.5k Jan 9, 2023
Highly customizable alertview and alert/notification/success/error/alarm popup written in Swift

CDAlertView is highly customizable alert popup written in Swift. Usage is similar to UIAlertController. Screenshots Animations Usage Basic usage witho

Candost Dagdeviren 1.1k Dec 30, 2022
A lightweight dropdown notification for iOS 7+, in Swift.

BRYXBanner A lightweight dropdown banner for iOS 7+. Usage Import BRYXBanner import BRYXBanner Create a banner using the designated initializer. let b

Bryx, Inc 1k Nov 20, 2022
A modern iOS toast view that can fit your notification needs

CRToast CRToast is a library that allows you to easily create notifications that appear on top of or by pushing out the status bar or navigation bar.

Collin Ruffenach 4.2k Dec 30, 2022
Emulates the native Remote Notification View.

Introduction HDNotificationView appears notification view like system. Requirement iOS 9.0+ Installation Carthage github "nhdang103/HDNotificationView

Nguyen Hai Dang 357 Nov 20, 2022
A simple and attractive AlertView to ask permission to your users for Push Notification.

A simple and attractive AlertView **to ask permission to your users for Push Notification.** PRESENTATION Ask permission to user for push notification

Boisney Philippe 37 Mar 23, 2022
OEANotification is a customizable notification view framework

OEANotification OEANotification is an iOS library which provides to create notifications and customize them easily. You can create notifications with

Ömer Aslan 19 Jan 30, 2021
A Swift Toast view - iOS 14 style and newer - built with UIKit. 🍞

Toast-Swift A Swift Toast view - iOS 14 style - built with UIKit. ?? Installation Swift Package Manager You can use The Swift Package Manager to insta

Bastiaan Jansen 216 Jan 4, 2023
It is a highly configurable iOS library which allows easy styling with built in styles as well as extra header and footer views so that you can make extremely unique alerts and action sheets.

 CFAlertViewController CFAlertViewController is a library that helps you display and customise Alerts, Action Sheets, and Notifications on iPad and i

Crowdfire Inc. 1.1k Dec 18, 2022
Simple Swift in-app notifications

LNRSimpleNotifications TSMessages is an amazingly powerful in-app notifications library but requires a lot of setup. LNRSimpleNotifications is a simpl

LISNR 203 Nov 20, 2022
CoffeeToast - A swift package to easily add Toast notifications to your app

CoffeeToast A simple Swift package to add Toast Notifications to your app. Insta

Maegan Wilson 2 Feb 3, 2022
📑 Actionsheet with navigation features such as the Flipboard App

?? SHEET helps you easily create a wide variety of action sheets with navigation features used in the Flipboard App Installation CocoaPods pod 'Sheet'

ArLupin 322 Nov 28, 2022