StretchScrollView
StretchScrollView provides functionality to enlarge title image and hide overlays when scrolling down. When scrolling up it allows to animate background of navigation bar.
Example
To run the example project, clone the repo, and run pod install
from the Example directory first.
GIF animation
Installation
Carthage
If you are setting StretchScrollView
class in storyboard assure module field is also StretchScrollView
Please check official guide
Cartfile:
github "APUtils/StretchScrollView" ~> 5.0
Then add both StretchScrollView
and ViewState
frameworks to your project. Remove APExtensionsViewState
dependency if you previously had it.
CocoaPods
StretchScrollView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'StretchScrollView', '~> 5.0'
Configuration
Assign StretchScrollView
class to your UIScrollView in storyboard, assure module field is also StretchScrollView
:
Set needed outlets and options.
Usually content mode Aspect Fill
fits well for UIImageView
:
Properly setup constraints for stretchedView
. There are two resize modes available: by top and height constraints and by top and sides constraints.
Example constraints setups:
For second setup if scroll view is enlarged it'll be automatically zoomed at center.
Also works when stretched view is inside UIStackView
and have height constraint.
/// StretchScrollView will manage navigation bar transparency by itself.
/// You could disable this option to manage it by yourself or to disable navigation bar animations.
@IBInspectable var manageNavigationBarTransparency: Bool = true
/// In case of transparent navigation bar you may specify background color that will appear when you scroll up.
@IBInspectable var navigationBackgroundColor: UIColor = .clear
You are done! See example project for more details.
Contributions
Any contribution is more than welcome! You can contribute through pull requests and issues on GitHub.
Author
Anton Plebanovich, [email protected]
License
StretchScrollView is available under the MIT license. See the LICENSE file for more info.