I have read dozens of questions about mimicking iOS 7 blur effect in earlier versions of iOS. But the fundamental question that arises here is does iOS 7's UIKit
really have a nice and convenient way to make any UIView
blurred? That seems quite logical to me. Any help appreciated.
As of iOS 8.0 (not iOS 7), UIKit provides UIVisualEffectView
and UIBlurEffect
. You can watch WWDC 2014 Session 419 “Advanced Graphics and Animations for iOS Apps” (or just download the slides) for an introduction to these classes.
No, it doesn't. Apple has not exposed an interface for doing this conveniently. For example, if you read through this discussion, Rincewind's responses should make it clear that Apple doesn't provide a public API for this, and that the private APIs they use have serious limits and are likely to change.
You must implement the blur effect yourself. You'll probably want to use the new -[UIView drawViewHierarchyInRect:afterScreenUpdates:]
method to capture the appearance of the background view, and then apply a CIFilter
to it to perform the blur.