Blame view

Pods/SwiftOverlays/README.md 4.15 KB
d774f0637   Trịnh Văn Quân   fisrt comit
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
  [![Build Status](https://travis-ci.org/peterprokop/SwiftOverlays.svg?branch=master)](https://travis-ci.org/peterprokop/SwiftOverlays)
  [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](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
  
  ![Wait](https://i.imgflip.com/df53v.gif)
  
  - [x] Wait overlay with text 
  
  ![WaitWithText](https://i.imgflip.com/df525.gif)
  
  - [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
  
  ![Notification](https://i.imgflip.com/df5k5.gif)
  
  ## 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.