Latest 0.1.0
Homepage https://github.com/orangeloops/OLSDynamicHeaderViewController
License MIT
Platforms ios 8.0
Authors

OLSDynamicHeaderViewController for iOS (v1.0)

This is an easy to integrate view controller that allows a UIScrollView or any of their widely used subclasses (such as UITableView and UICollectionView) to have a header view that can be animated along with scrolling.

Here an example:

Installation

OLSDynamicHeaderViewController is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "OLSDynamicHeaderViewController"

Setup

On your ViewController:

  • Make your UIViewController to inherit either one of the helpers OLSDynamicHeaderTableViewController or OLSDynamicHeaderCollectionViewController
class MyViewController: OLSDynamicHeaderTableViewController {

    // MARK - OLSDynamicHeaderViewControllerProtocol
    override func headerViewInstance() -> OLSDynamicHeaderView {
        ...
    }

    // ... (View Controller lifecycle and logic)
  • On headerViewInstance() return an instance of OLSDynamicHeaderView subclass. This class is a basic UIView subclass that conforms the protocol that will help you with the animation part =D.

Now… for your header:

  • Create a subclasss of OLSDynamicHeaderView, and implement the protocol:

    class MyDynamicHeader: OLSDynamicHeaderView {
    
    func maxHeight() -> CGFloat { ... }
    
    func minHeight() -> CGFloat { ... }
    
    func resize(withProgress progress: CGFloat) { ... }
    
    func overflow(withPoints points: CGFloat)  { ... }
    }
  • maxHeight returns the maximum height allowed for this view.
  • minHeight returns the minimum height allowed for this view.
  • resize(withProgress) will be called when the user scrolls and your header needs to animate. progress goes from 0 to 1, 0 min height reached, 1 max height reached.
  • overflow(withPoints) will be called when the user scrolls further the max height. points goes from 0 to N.

Note

  • The project includes a basic sample code you can use as a guidence to integrate the component in your app.
  • The project provides helper subclasses for tableView and collectionView, and the example above takes advantage of those classes. But you can go a step under and inherit from OLSDynamicHeaderViewController and move from there to have additional control.
  • If you have questions, improvements, ideas or just comments, see to the links below!

Author

Omar Hagopian, Antihero @OrangeLoops

Contact:

📨Mail | 🐥Twitter

License

OLSDynamicHeaderViewController is under the MIT license. See the LICENSE file for more info!

Latest podspec

{
    "name": "OLSDynamicHeaderViewController",
    "version": "0.1.0",
    "summary": "UIScrollView based component with a header view that can be animated along with scrolling",
    "description": "'This is an easy to integrate view controller that allows a UIScrollView or any of their widely used subclasses (such as UITableView and UICollectionView) to have a header view that can be animated along with scrolling.",
    "homepage": "https://github.com/orangeloops/OLSDynamicHeaderViewController",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "OrangeLoops": "[email protected]"
    },
    "source": {
        "git": "https://github.com/orangeloops/OLSDynamicHeaderViewController.git",
        "tag": "0.1.0"
    },
    "social_media_url": "http://orangeloops.com",
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "OLSDynamicHeaderViewController/Classes/**/*",
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This