Contents

abdullahselek/SwiftyNotifications

Highly configurable iOS UIView for presenting notifications that doesn't block the UI.

Screenshots

[info] [error] [success] [warning] [custom]

Requirements

| SwiftyNotifications Version | Minimum iOS Target | Swift Version | |:--------------------:|:---------------------------:|:---------------------------:| | 0.7.1 | 11.0 | 5.x | | 0.5.3 | 9.0 | 4.2 | | 0.5.2 | 9.0 | 4.1 | | 0.5.1 | 8.0 | 4.0 | | 0.4 | 8.0 | 3.x |

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate SwiftyNotifications into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!

target '<Your Target Name>' do
        pod 'SwiftyNotifications', '~>0.7.1'
end

Then, run the following command:

$ pod install

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 SwiftyNotifications into your Xcode project using Carthage, specify it in your Cartfile:

github "abdullahselek/SwiftyNotifications" ~> 0.7.1

Swift Package Manager

Modify your Package.swift file to include the following dependency:

.package(url: "https://github.com/abdullahselek/SwiftyNotifications.git", from: "0.7.1")

XCFramework

XCFrameworks require Xcode 11 or later and integration is very similar to integration of .framework format. Please use script scripts/build-framework.sh to generate binary SwiftyNotifications.xcframework archive that you can use as a dependency in Xcode.

SwiftyNotifications.xcframework is a Release (Optimized) binary that offer best available Swift code performance.

Example Usage

import SwiftyNotifications

Than initiate notification and add to your view

let notification = SwiftyNotifications.withStyle(style: .info,
                                                 title: "Swifty Notifications",
                                                 subtitle: "Highly configurable iOS UIView for presenting notifications that doesn't block the UI",
                                                 direction: .bottom)
view.addSubview(notification)

You can customize this notification anytime in your view

notification.customize(style: .warning)

and update texts

notification.setTitle(title: "New title", subtitle: "New subtitle")

To show the notification

notification.show()

To dismiss

notification.dismiss()

Creating custom notification

let customNotification = SwiftyNotifications.withStyle(style: .custom,
                                                       title: "Custom",
                                                       subtitle: "Custom notification with custom image and colors",
                                                       direction: .top)
customNotification.leftAccessoryView.image = UIImage(named: "apple_logo")!
customNotification.setCustomColors(backgroundColor: UIColor.cyan, textColor: UIColor.white)
view.addSubview(customNotification)

Other available functions for creating notifications

With a time interval option for auto dismissing

let notification = SwiftyNotifications.withStyle(style: .warning,
                                                 title: "Title",
                                                 subtitle: "Subtitle",
                                                 dismissDelay: 3.0,
                                                 direction: .top)

With touch handler

let notification = SwiftyNotifications.withStyle(style: .error,
                                                 title: "Title",
                                                 subtitle: "Subtitle",
                                                 dismissDelay: 5.0,
                                                 direction: .bottom) {
                                                            
        }

New class added for just displaying message

let swiftyNotificationsMessage = SwiftyNotificationsMessage.withBackgroundColor(color: UIColor.darkGray,
                                                                                message: "Notification with just text",
                                                                                direction: .top)
view.addSubview(swiftyNotificationsMessage)

To display message notification

swiftyNotificationsMessage.show()

Dismissing message notification

swiftyNotificationsMessage.dismiss()

Optional delegates that gives informations about showing and dismissing notification screen

  • func willShowNotification(notification: SwiftyNotifications)
  • func didShowNotification(notification: SwiftyNotifications)
  • func willDismissNotification(notification: SwiftyNotifications)
  • func didDismissNotification(notification: SwiftyNotifications)

Adding touch handler to catch tap gestures on notification

notification.addTouchHandler {

        }

Add a swipe gesture recognizer to dismiss notification with a swipe direction

notification.addSwipeGestureRecognizer(direction: .down)

Possible swipe directions

  • right
  • left
  • up
  • down

Package Metadata

Repository: abdullahselek/SwiftyNotifications

Stars: 64

Forks: 14

Open issues: 2

Default branch: master

Primary language: swift

License: MIT

Topics: animated, custom-view, ios, notifications

README: README.md