Blurring the background
The first naïve idea would be to change the level of blurriness depending on the position of the scrollView
, but it 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 the scrollView
, we blur the image, only before setting it to the UIImageView
. Then, we set the alpha channel to 0 (which means transparent). Next, we change the alpha depending on the position, reaching the opaque when the scrollView
offset reaches half.
First of all, we need to import the framework to blur the image:
import FXBlurView
Then, create the overlay view and set as subview:
private let overlayView = UIImageView() //... func setup(){ //... overlayView.contentMode = .ScaleAspectFill overlayView.clipsToBounds = true view.addSubview(overlayView) //... scrollView.delegate = self ...