The first naïve idea would be to change the level of blurriness depending on the position of scrollView
, but this will be really inefficient because the blur operation is CPU-intensive, and it won't be smooth on older devices.
So, the idea is to trick the user. Instead of blurring the image at every change of position of scrollView
, we blur the image, only before setting it to UIImageView
. Then, we set the alpha channel to 0 (which means transparent). Next, we change the alpha depending on the position, reaching opaque when the scrollView
offset reaches half.
First of all, we need to import the framework to blur the image:
import FXBlurView
Then, we need to create the overlay view and set it as subview
:
private let overlayView = UIImageView() //... func setup(){ //... overlayView.contentMode = .ScaleAspectFill overlayView.clipsToBounds = true view.addSubview(overlayView) //... scrollView.delegate = self view.addSubview(scrollView) } func layoutView...