Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/corin8823/Popover
Popover is a balloon library like Facebook app. It is written in pure swift.
https://github.com/corin8823/Popover
Last synced: 3 months ago
JSON representation
Popover is a balloon library like Facebook app. It is written in pure swift.
- Host: GitHub
- URL: https://github.com/corin8823/Popover
- Owner: corin8823
- License: mit
- Created: 2015-08-19T13:50:23.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-04-05T05:40:28.000Z (over 2 years ago)
- Last Synced: 2024-05-17T20:01:22.067Z (6 months ago)
- Language: Swift
- Homepage:
- Size: 202 KB
- Stars: 2,076
- Watchers: 52
- Forks: 322
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - Popover - Popover is a balloon library like Facebook app. It is written in pure swift. (UI / Popup)
- awesome-ios-star - Popover - Popover is a balloon library like Facebook app. It is written in pure swift. (UI / Popup)
README
# Popover
[![CI Status](http://img.shields.io/travis/corin8823/Popover.svg?style=flat)](https://travis-ci.org/corin8823/Popover)
[![Version](https://img.shields.io/cocoapods/v/Popover.svg?style=flat)](http://cocoapods.org/pods/Popover)
[![License](https://img.shields.io/cocoapods/l/Popover.svg?style=flat)](http://cocoapods.org/pods/Popover)
[![Platform](https://img.shields.io/cocoapods/p/Popover.svg?style=flat)](http://cocoapods.org/pods/Popover)## Description and [appetize.io`s DEMO](https://appetize.io/app/q4n81yf0aakkx20x2cejh107b4)
![](https://github.com/corin8823/Popover/blob/master/ScreenShots/Screenshot.gif)
## Usage
To run the example project, clone the repo, and run `pod install` from the Example directory first.
### Simple
```swift
let startPoint = CGPoint(x: self.view.frame.width - 60, y: 55)
let aView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 180))
let popover = Popover()
popover.show(aView, point: startPoint)
```### Custom
```swift
@IBOutlet weak var leftBottomButton: UIButton!let width = self.view.frame.width / 4
let aView = UIView(frame: CGRect(x: 0, y: 0, width: width, height: width))
let options = [
.type(.up),
.cornerRadius(width / 2),
.animationIn(0.3),
.blackOverlayColor(UIColor.red),
.arrowSize(CGSize.zero)
] as [PopoverOption]
let popover = Popover(options: options, showHandler: nil, dismissHandler: nil)
popover.show(aView, fromView: self.leftBottomButton)
```## Requirements
- iOS 9.0+
- Swift 5## Installation
### CocoaPods (iOS 8+)
Popover is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your `Podfile`:```ruby
use_frameworks!
pod "Popover"
```### Carthage (iOS 8+)
You can use [Carthage](https://github.com/Carthage/Carthage) to install `Popover` by adding it to your `Cartfile`:
```ruby
github "corin8823/Popover"
```### Manual Installation
The class file required for Popover is located in the Classes folder in the root of this repository as listed below:
```
Popover.swift
```## Customization
### Enum
- ``case arrowSize(CGSize)``
- ``case animationIn(NSTimeInterval)``
- ``case animationOut(NSTimeInterval)``
- ``case cornerRadius(CGFloat)``
- ``case sideEdge(CGFloat)``
- ``case blackOverlayColor(UIColor)``
- ``case overlayBlur(UIBlurEffectStyle)``
- ``case type(Popover.PopoverType)``
- ``case color(UIColor)``
- ``case dismissOnBlackOverlayTap(Bool)``
- ``case showBlackOverlay(Bool)``### Property
- ``arrowSize: CGSize = CGSize(width: 16.0, height: 10.0)``
- ``animationIn: NSTimeInterval = 0.6``
- ``animationOut: NSTimeInterval = 0.3``
- ``cornerRadius: CGFloat = 6.0``
- ``sideEdge: CGFloat = 20.0``
- ``popoverType: PopoverType = .down``
- ``blackOverlayColor: UIColor = UIColor(white: 0.0, alpha: 0.2)``
- ``overlayBlur: UIBlurEffect?``
- ``popoverColor: UIColor = UIColor.white``## Acknowledgments
Inspired by [DXPopover](https://github.com/xiekw2010/DXPopover) in [xiekw2010](https://github.com/xiekw2010)## License
Popover is available under the MIT license. See the LICENSE file for more info.