Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pyro2927/parallaxblur
Easy to subclass parallax UITableController w/ blurring image header, floating header, and UIScrollView for content
https://github.com/pyro2927/parallaxblur
Last synced: about 17 hours ago
JSON representation
Easy to subclass parallax UITableController w/ blurring image header, floating header, and UIScrollView for content
- Host: GitHub
- URL: https://github.com/pyro2927/parallaxblur
- Owner: pyro2927
- License: mit
- Created: 2014-08-22T20:08:56.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2015-08-03T17:33:04.000Z (over 9 years ago)
- Last Synced: 2024-10-19T15:16:37.406Z (about 1 month ago)
- Language: Objective-C
- Homepage:
- Size: 3.99 MB
- Stars: 817
- Watchers: 25
- Forks: 69
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ParallaxBlur
[![CI Status](http://img.shields.io/travis/pyro2927/ParallaxBlur.svg?style=flat)](https://travis-ci.org/pyro2927/ParallaxBlur)
[![Version](https://img.shields.io/cocoapods/v/ParallaxBlur.svg?style=flat)](http://cocoadocs.org/docsets/ParallaxBlur)
[![License](https://img.shields.io/cocoapods/l/ParallaxBlur.svg?style=flat)](http://cocoadocs.org/docsets/ParallaxBlur)
[![Platform](https://img.shields.io/cocoapods/p/ParallaxBlur.svg?style=flat)](http://cocoadocs.org/docsets/ParallaxBlur)ParallaxBlur aims the be an easy-to-use implementation of a UITableController with a parallax header. It is screen resolution independant, orientation indendant, and will automatically adjust if there is a navigation bar in place.
The user interaction is fairly straightforward. The header image blurs as you scroll up, leaving a 60 pixel area always visible, and expands out the header image if you pull down, while at the same time making the overlay views transparent.
Developed at [Software for Good](http://sfg.io).
![](./preview.gif)
Inspiration was taken from Aaron Pang's [SecretViewer](https://github.com/aaronpang/SecretViewer). I liked the way it looked and behaved, but it wasn't extremely customizable, and not setup to be used as a Pod.
## Basic Usage
Usage is pretty simple. Subclass `JPBFloatingTextViewController` and then customize it within `viewDidLoad`:
[self setHeaderImage:[UIImage imageNamed:@"meatballs.jpeg"]];
[self setTitleText:@"The Best Title in the World"];
[self setSubtitleText:@"ikea meatballs are the bomb"];You should override the required `UITableViewDatasource` and `UITableViewDelegate` methods to supply the content section with cells and handle user selections.
## Advanced Usage
You can also more heavily customize the header by using `addHeaderOverlayView:`. Using this will add the passed `UIView` to the scrolling header. An example can be seen in `CustomHeaderViewController.m`. You can get the height of the header (useful for getting things to align near the bottom) by calling `[self headerHeight]`.
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(15, [self headerHeight] - 100, 90, 90)];
[imageView setImage:[UIImage imageNamed:@"awesome.jpg"]];
[self addHeaderOverlayView:imageView];## Loading Images Asynchronously
If you want to load remote images, I'd recommend using [SDWebImage](https://github.com/rs/SDWebImage). Example for using it with ParallaxBlur:
[[SDWebImageManager sharedManager] downloadImageWithURL:headerImageURL options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
//Track progress if you wish
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
if (finished) {
[self setHeaderImage:image];
}
}];## Geeky Stuff
![](./asplode.png)
The view controller manages three `UIScrollViews`, one for the header/background, one for the lower content, and an "main" one to handle user interactions and delegate callbacks. The image "blurring" is just a gradual change in a secondary image overlay's alpha, which is a blurred version of the image set, precalculated and run through `FXBlurView`.
## Example
To run the example project, clone the repo, and run `pod install` from the Example directory first.
## Requirements
iOS 7.0 or higher.
## Installation
ParallaxBlur is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:pod "ParallaxBlur"
## Author
pyro2927, [email protected]
## License
ParallaxBlur is available under the MIT license. See the LICENSE file for more info.