Blame view
Pods/SwiftOverlays/README.md
4.15 KB
|
d774f0637
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
[](https://travis-ci.org/peterprokop/SwiftOverlays)
[](https://github.com/Carthage/Carthage)
# SwiftOverlays
SwiftOverlays is a Swift GUI library for displaying various popups and notifications.
## Features
SwiftOverlays provides several ways to notify user:
- [x] Wait overlay: a simple overlay with activity indicator

- [x] Wait overlay with text

- [x] Overlay with text only
- [x] Overlay with image and text (can be used with [PPSwiftGifs](https://github.com/peterprokop/PPSwiftGifs) to show custom animated GIF instead of UIActivityIndicatorView)
- [x] All of the above with blocking any user interaction
- [x] 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" ~> 2.0.0` into Cartfile
* Save it: `ctrl-x`, `y`, `enter`
* 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', '~> 2.0.0'
use_frameworks!
```
- Save it: `ctrl-x`, `y`, `enter`
- `pod update`
- Open generated `.xcworkspace`
- Don't forget to import SwiftOverlays: `import SwiftOverlays`!
## Requirements
- iOS 7.0+ (8.0+ if you use Cocoapods)
- Xcode 8.0+
- Swift 3.0 (if you need older swift version, see following branches: [swift-1.1](https://github.com/peterprokop/SwiftOverlays/tree/swift-1.1), [swift-1.2](https://github.com/peterprokop/SwiftOverlays/tree/swift-1.2),
[swift-2.1](https://github.com/peterprokop/SwiftOverlays/tree/swift-2.1) and others)
## Usage
If you're using CocoaPods, import the library with `import SwiftOverlays`
You can use UIViewController convenience methods provided by library:
```swift
// 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...
...spanning several lines"
self.showTextOverlay(text)
// Remove everything
self.removeAllOverlays()
// Notification on top of the status bar
UIViewController.showNotificationOnTopOfStatusBar(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:
```swift
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.).
## Contribution
You are welcome to fork and submit pull requests
## Other Projects
[StarryStars](https://github.com/peterprokop/StarryStars) - iOS GUI library for displaying and editing ratings.
|