(Added more info.) |
(More.) |
||
Line 3: | Line 3: | ||
It uses a [[CABackdropLayer]] with a [[CAFilter#gaussianBlur|gaussianBlur CAFilter]].<ref>https://twitter.com/conradev/status/380905728393117696</ref> | It uses a [[CABackdropLayer]] with a [[CAFilter#gaussianBlur|gaussianBlur CAFilter]].<ref>https://twitter.com/conradev/status/380905728393117696</ref> | ||
_UIBackdropView uses the settings for its setup. Here's all settings class available in iOS 7.0 | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 52: | Line 52: | ||
|} | |} | ||
There are | There are many ways to create the settings object | ||
<source lang="objc"> | <source lang="objc"> | ||
Line 58: | Line 58: | ||
_UIBackdropViewSettings *settings = (_UIBackdropViewSettings *)[[[_UIBackdropViewSettingsSemiLight alloc] init] autorelease]; | _UIBackdropViewSettings *settings = (_UIBackdropViewSettings *)[[[_UIBackdropViewSettingsSemiLight alloc] init] autorelease]; | ||
_UIBackdropViewSettings *settings = [_UIBackdropViewSettings settingsForStyle:2070]; | |||
_UIBackdropViewSettings *settings = [_UIBackdropViewSettings settingsForPrivateStyle:2070]; | |||
_UIBackdropViewSettings *settings = [_UIBackdropViewSettings | _UIBackdropViewSettings *settings = [[[_UIBackdropViewSettings alloc] initWithDefaultsValue] autorelease]; | ||
</source> | </source> | ||
Line 68: | Line 70: | ||
<source lang="objc"> | <source lang="objc"> | ||
// Creating blur view using settings object | |||
_UIBackdropViewSettings *settings = [_UIBackdropViewSettings settingsForStyle:2060]; | _UIBackdropViewSettings *settings = [_UIBackdropViewSettings settingsForStyle:2060]; | ||
// initialization of the blur view | |||
_UIBackdropView *blurView = [[_UIBackdropView alloc] initWithFrame:CGRectZero | _UIBackdropView *blurView = [[_UIBackdropView alloc] initWithFrame:CGRectZero | ||
autosizesToFitSuperview:YES settings:settings]; | autosizesToFitSuperview:YES settings:settings]; | ||
// another way for initialization | |||
_UIBackdropView *blurView = [[_UIBackdropView alloc] initWithSettings:settings]; | |||
// or without settings object implementation | |||
_UIBackdropView *blurView = [[_UIBackdropView alloc] initWithStyle:2060]; | |||
[someView addSubview:backView]; | [someView addSubview:backView]; | ||
[blurView release]; | [blurView release]; | ||
Line 99: | Line 110: | ||
</source> | </source> | ||
== Applying blur settings == | |||
You can config the settings parameter then apply and update the blur view. | |||
<source lang="objc"> | |||
_UIBackdropViewSettings *newSettings = [_UIBackdropView settingsForPrivateStyle:0]; | |||
// Whatever configuration for the settings | |||
[blurView applySettings:newSettings]; | |||
// or | |||
[blueView computeAndApplySettings:newSettings]; | |||
</source> | |||
== Getting all _UIBackdropView objects at runtime == | |||
Just using this method: | |||
+ (NSArray *)allBackdropViews; | |||
== References == | == References == |
Revision as of 02:21, 18 May 2014
_UIBackdropView is a private class in UIKit.framework (iOS 7.0+), a subclass of UIView, which is used for the popular blur effects.
It uses a CABackdropLayer with a gaussianBlur CAFilter.[1]
_UIBackdropView uses the settings for its setup. Here's all settings class available in iOS 7.0
Class name | Style number | Comments/Used by |
---|---|---|
_UIBackdropViewSettingsBlur | 0 | Common blurring |
_UIBackdropViewSettingsUltraLight | 2010 | Some alert views in Settings app & many white UIs |
_UIBackdropViewSettingsLight | 2020 | |
_UIBackdropViewSettingsDark | 2030 | iOS 7 Notification Center (?) |
_UIBackdropViewSettingsDarkLow | 2039 | |
_UIBackdropViewSettingsColored | 2040 | |
_UIBackdropViewSettingsUltraDark | 2050 | |
_UIBackdropViewSettingsAdaptiveLight | 2060 | iOS 7 Control Center |
_UIBackdropViewSettingsSemiLight | 2070 | |
_UIBackdropViewSettingsUltraColored | 2080 |
There are many ways to create the settings object
_UIBackdropViewSettings *settings = (_UIBackdropViewSettings *)[[[_UIBackdropViewSettingsSemiLight alloc] init] autorelease];
_UIBackdropViewSettings *settings = [_UIBackdropViewSettings settingsForStyle:2070];
_UIBackdropViewSettings *settings = [_UIBackdropViewSettings settingsForPrivateStyle:2070];
_UIBackdropViewSettings *settings = [[[_UIBackdropViewSettings alloc] initWithDefaultsValue] autorelease];
Creating _UIBackdropView (Blur view) object
// Creating blur view using settings object
_UIBackdropViewSettings *settings = [_UIBackdropViewSettings settingsForStyle:2060];
// initialization of the blur view
_UIBackdropView *blurView = [[_UIBackdropView alloc] initWithFrame:CGRectZero
autosizesToFitSuperview:YES settings:settings];
// another way for initialization
_UIBackdropView *blurView = [[_UIBackdropView alloc] initWithSettings:settings];
// or without settings object implementation
_UIBackdropView *blurView = [[_UIBackdropView alloc] initWithStyle:2060];
[someView addSubview:backView];
[blurView release];
Blur Quality
There are only two qualities available.
- low
- default (Assumed to be "medium")
You can set it like this:
[blurView setBlurQuality:@"low"];
Tinting blur view
[blurView setRequiresColorStatistics:YES];
[blurView setColorTint:[UIColor cyanColor]];
[blurView setColorTintAlpha:0.8];
[blurView setColorTintMaskAlpha:0.7];
Applying blur settings
You can config the settings parameter then apply and update the blur view.
_UIBackdropViewSettings *newSettings = [_UIBackdropView settingsForPrivateStyle:0];
// Whatever configuration for the settings
[blurView applySettings:newSettings];
// or
[blueView computeAndApplySettings:newSettings];
Getting all _UIBackdropView objects at runtime
Just using this method:
+ (NSArray *)allBackdropViews;
References