SwiftOverlays
  • October 29, 2023

SwiftOverlays is a Swift GUI library for displaying various popups and notifications.

SwiftOverlays animated logo is kindly made by Crafted Pixels

Features


SwiftOverlays provides several ways to notify user:

  •  Wait overlay: a simple overlay with activity indicator

  •  Overlay with text only
  •  Overlay with image and text (can be used with PPSwiftGifs to show custom animated GIF instead of UIActivityIndicatorView)
  •  All of the above with blocking any user interaction
  •  Notification on top of the status bar, similar to native iOS local/push notifications

Installation


Manual

Just clone and add SwiftOverlays.swift to your project.

Carthage

  • > Cartfile
  • nano Cartfile
  • put github "peterprokop/SwiftOverlays" ~> 5.0.1 into Cartfile
  • Save it: ctrl-xyenter
  • Run carthage update
  • Copy SwiftOverlays.framework from Carthage/Build/iOS to your project
  • Make sure that SwiftOverlays 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)
  • Add import SwiftOverlays on top of your view controller’s code

CocoaPods

  • Make sure that you use latest stable Cocoapods version: pod --version
  • If not, update it: sudo gem install cocoapods
  • pod init in you project root dir
  • nano Podfile, add:

pod ‘SwiftOverlays’, ‘~> 5.0.1’
use_frameworks!

  • Save it: ctrl-xyenter
  • pod update
  • Open generated .xcworkspace
  • Don’t forget to import SwiftOverlays: import SwiftOverlays!

Requirements


  • iOS 10.0+
  • Xcode 10.0+
  • Swift 4.2 (if you need older swift version, see swift-3.0 and others)

Usage


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()

Using with UITableViewController/UICollectionViewController


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.).

GitHub


View Github

#carthage #cocoapods #ios #iosui #notification #swift #swift4
YOU MIGHT ALSO LIKE...
Popup View

Floaters Toasts Popups Sheets

Drops 💧

A µFramework for showing alerts like the one used when copying from pasteboard or connecting Apple pencil.

MarqueeText

A SwiftUI Marquee or "scrolling text" effect found in Apple native apps. For when one line isn't enough, but two ...

TextBuilder

Introduction Text composition in SwiftUI can often be cumbersome, especially when there's logic affecting its format and content. TextBuilder leverages the ...

TextView

Download File -> Swift Packages -> Add Package Dependency... Select your project Enter https://github.com/kenmueller/TextView for the package repository URL Select Branch: master Click Finish ...