Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
BohdanOrlov committed Oct 16, 2016
1 parent ea04323 commit 3cdeea1
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 4 deletions.
Binary file added GIFs/bouncyDemo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added GIFs/dribble.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
81 changes: 77 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,90 @@
# BouncyPageViewController

[![CI Status](http://img.shields.io/travis/Bohdan Orlov/BouncyPageViewController.svg?style=flat)](https://travis-ci.org/Bohdan Orlov/BouncyPageViewController)
[![Version](https://img.shields.io/cocoapods/v/BouncyPageViewController.svg?style=flat)](http://cocoapods.org/pods/BouncyPageViewController)
[![License](https://img.shields.io/cocoapods/l/BouncyPageViewController.svg?style=flat)](http://cocoapods.org/pods/BouncyPageViewController)
[![Platform](https://img.shields.io/cocoapods/p/BouncyPageViewController.svg?style=flat)](http://cocoapods.org/pods/BouncyPageViewController)

Page view controller with bounce effect inspired by motion design by [Stan Yakushevish](https://dribbble.com/shots/2985170-Healthy).


| ![](GIFs/dribble.gif) | ![](GIFs/bouncyDemo.gif) |
| ------------- |-------------|

# Quickstart
### Create a queue of `UIViewControllers` to display
```swift
let pagesQueue: [UIViewController]() = ... // your view controllers here
```
### Create a `BouncyPageViewController ` passing initial view controllers
```swift
let pageViewController = BouncyPageViewController(initialViewControllers: Array(pagesQueue[0...1]))
```
### Assign closures for providing next/pevious view controllers
```swift
pageViewController.viewControllerAfterViewController = self.viewControllerAfterViewController
pageViewController.viewControllerBeforeViewController = self.viewControllerBeforeViewController
```
#### Vend the next ViewController from the queue
```swift
func viewControllerAfterViewController(prevVC: UIViewController) -> UIViewController? {
if let idx = self.pagesQueue.index(of: prevVC), idx + 1 < self.pagesQueue.count {
return self.pagesQueue[idx + 1]
}
return nil
}
```
### Assign a `didScroll` callback closure
```swift
pageViewController.didScroll = self.pageViewControllerDidScroll
```
#### Update the UI using the `offset` and `progress`
```swift
func pageViewControllerDidScroll(pageViewController: BouncyPageViewController, offset: CGFloat, progress: CGFloat) {
for vc in pageViewController.visibleControllers() {
let vc = (vc as! ViewController)
vc.progress = progress

}
}
```
# Configuration
#### How much pages overlap eachother, more inset - higher bounce
```swift
public var pageContentInset: CGFloat = 30
```
#### How long the bounce animates when you release the page
```swift
public var pageBounceAnimationDuration: TimeInterval = 1
```
#### How far you can scroll the last page until it snaps back (half of the page by default)
```swift
public var overscrollBounceMultiplier: CGFloat = 0.5
```
## Example

To run the example project, clone the repo, and run `pod install` from the Example directory first.
To run the example project, clone the repo, and run as usual.


# Installation
## Requirements
iOS 9+

Swift 3

## Carthage
To use latest release add this to Cartfile:

```ruby
git "https://github.com/BohdanOrlov/BouncyPageViewController"

```
Then run in terminal:

## Installation
```bash
$ carthage update

```
## CocoaPods

BouncyPageViewController is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:
Expand All @@ -22,7 +95,7 @@ pod "BouncyPageViewController"

## Author

Bohdan Orlov, bohdan.orlov@corp.badoo.com
Bohdan Orlov, bohdan.orlov@gmail.com

## License

Expand Down

0 comments on commit 3cdeea1

Please sign in to comment.