StretchScrollView provides functionality to enlarge title image and hide overlays when scrolling down. When scrolling up it allows to animate background of navigation bar.
To run the example project, clone the repo, and run pod install
from the Example directory first.
If you are setting StretchScrollView
class in storyboard assure module field is also StretchScrollView
Please check official guide
Cartfile:
github "APUtils/StretchScrollView" ~> 6.0
Install command: carthage bootstrap --use-xcframeworks
Then add both StretchScrollView
and ViewState
frameworks to your project. Remove APExtensionsViewState
dependency if you previously had it.
StretchScrollView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'StretchScrollView', '~> 6.0'
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler.
Once you have your Swift package set up, adding StretchScrollView
as a dependency is as easy as adding it to the dependencies value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/APUtils/StretchScrollView.git", .upToNextMajor(from: "6.0.0"))
]
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.
Any contribution is more than welcome! You can contribute through pull requests and issues on GitHub.
Anton Plebanovich, anton.plebanovich@gmail.com
StretchScrollView is available under the MIT license. See the LICENSE file for more info.