SwiftOverlays is a Swift GUI library for displaying various popups and notifications.
SwiftOverlays animated logo is kindly made by Crafted Pixels
SwiftOverlays provides several ways to notify user:
Just clone and add SwiftOverlays.swift
to your project.
> Cartfile
nano Cartfile
github "peterprokop/SwiftOverlays" ~> 5.0.1
into Cartfilectrl-x
, y
, enter
carthage update
SwiftOverlays.framework
from Carthage/Build/iOS
to your projectSwiftOverlays
is added in Embedded Binaries
section of your target (or else you will get dyld library not loaded referenced from ... reason image not found
error)import SwiftOverlays
on top of your view controller's codepod --version
sudo gem install cocoapods
pod init
in you project root dirnano Podfile
, add:pod 'SwiftOverlays', '~> 5.0.1'
use_frameworks!
ctrl-x
, y
, enter
pod update
.xcworkspace
import SwiftOverlays
!If you're using CocoaPods, import the library with import SwiftOverlays
You can use UIViewController convenience methods provided by library:
// In your view controller:
// Wait overlay
self.showWaitOverlay()
// Wait overlay with text
let text = "Please wait..."
self.showWaitOverlayWithText(text)
// Overlay with text only
let text = "This is a text-only overlay...\n...spanning several lines"
self.showTextOverlay(text)
// Remove everything
self.removeAllOverlays()
// Notification on top of the status bar
UIViewController.showOnTopOfStatusBar(annoyingNotificationView!, duration: 5)
// Block user interaction
SwiftOverlays.showBlockingWaitOverlayWithText("This is blocking overlay!")
// Don't forget to unblock!
SwiftOverlays.removeAllBlockingOverlays()
You can't use SwiftOverlays convenience methods directly with UITableViewController - because its view is, well, an UITableView, and overlay will be scrolled along with it.
Instead I suggest using UIViewController instead of UITableViewController and adding UITableView as a subview. (the same applies to UICollectionViewController)
If for some reason you can't use UIViewController, you can do something like:
if let superview = self.view.superview {
SwiftOverlays.showCenteredWaitOverlayWithText(superview, text: "Please wait...")
SwiftOverlays.removeAllOverlaysFromView(superview)
}
(but in that case overlay will be added to the superview, and you should obviously do that only if superview is available - for example in viewDidAppear method of your controller.).
You are welcome to fork and submit pull requests