(→Applying blur settings: correction.) |
(More info.) |
||
Line 128: | Line 128: | ||
</source> | </source> | ||
== | == Blurring == | ||
There are only two qualities available. | There are only two blur qualities available. | ||
* low | * low | ||
* default (Assumed to be "medium") | * default (Assumed to be "medium") | ||
<source lang="objc"> | <source lang="objc"> | ||
[blurView setBlurRadiusSetOnce:NO]; | |||
[blurView setBlurRadius:10.0]; | |||
[blurView setBlurHardEdges:3]; | |||
[blurView setBlurWithHardEdges:YES]; | |||
[blurView setBlurQuality:@"low"]; | [blurView setBlurQuality:@"low"]; | ||
</source> | </source> | ||
== Tinting | == Tinting == | ||
<source lang="objc"> | <source lang="objc"> | ||
[blurView setRequiresColorStatistics:YES]; | [blurView setRequiresColorStatistics:YES]; | ||
[blurView setUsesColorTintView:YES]; | [blurView setUsesColorTintView:YES]; | ||
[blurView setColorTint: | UIColor *color = [UIColor cyanColor]; | ||
[blurView setColorTint:color]; // or you may use - (void)transitionToColor:(UIColor *)color; | |||
[blurView setColorTintAlpha:0.8]; | [blurView setColorTintAlpha:0.8]; | ||
[blurView setColorTintMaskAlpha:0.7]; | [blurView setColorTintMaskAlpha:0.7]; | ||
Line 153: | Line 157: | ||
</source> | </source> | ||
== Applying blur settings == | == Applying blur settings/style == | ||
There are several ways for doing this by methods. | |||
{{Function signature|signature=- (void)transitionIncrementallyToPrivateStyle:(int)style weighting:(float)weight;|firmware=7.0 –}} | |||
{{Function signature|signature=- (void)transitionIncrementallyToStyle:(int)style weighting:(float)weight;|firmware=7.0 –}} | |||
{{Function signature|signature=- (void)transitionToSettings:(_UIBackdropViewSettings *)settings;|firmware=7.0 –}} | |||
{{Function signature|signature=- (void)transitionToPrivateStyle:(int)style;|firmware=7.0 –}} | |||
{{Function signature|signature=- (void)transitionToStyle:(int)style;|firmware=7.0 –}} | |||
For example | |||
<source lang="objc"> | <source lang="objc"> | ||
Line 172: | Line 184: | ||
for (_UIBackdropView *view in blurViews) { | for (_UIBackdropView *view in blurViews) { | ||
NSLog(@"This _UIBackdropView style is: %d", view.style); | |||
// do any _UIBackdropView configuration here | // do any _UIBackdropView configuration here | ||
} | } |
Revision as of 12:14, 23 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. (superclass _UIBackdropViewSettings) Here's all settings class available in iOS 7
Class name | Style number(s) | Comments/Used by |
---|---|---|
_UIBackdropViewSettingsCombiner | -3 | |
_UIBackdropViewSettingsNone | -2 | |
_UIBackdropViewSettingsLight | 0, 1000, 1003, 2020, 10090, 10100 | |
_UIBackdropViewSettingsDark | 1, 1001, 1100, 2030, 11050, 11060 | iOS 7 Notification Center (?) |
_UIBackdropViewSettingsBlur | 2 | Common blurring |
_UIBackdropViewSettingsColorSample | 2000 | |
_UIBackdropViewSettingsUltraLight | 2010 | Some alert views in Settings app & many white UIs |
_UIBackdropViewSettingsLightLow | 2029 | |
_UIBackdropViewSettingsDarkWithZoom | 2031 | |
_UIBackdropViewSettingsDarkLow | 2039 | |
_UIBackdropViewSettingsColored | 2040 | rgba(0.0196078,0.0196078,0.0196078,1) |
10091 | rgba(0.160784,1,0.301961,1) | |
10092 | rgba(1,0.0980392,0.0470588,1) | |
10120 | rgba(0.0313725,0.262745,0.560784,1) | |
_UIBackdropViewSettingsUltraDark | 2050, 11070 | |
_UIBackdropViewSettingsAdaptiveLight | 2060 | iOS 7 Control Center |
_UIBackdropViewSettingsSemiLight | 2070 | |
_UIBackdropViewSettingsFlatSemiLight | 2071 | |
_UIBackdropViewSettingsUltraColored | 2080 | |
_UIBackdropViewSettingsPasscodePaddle | 3900 | |
_UIBackdropViewSettingsLightKeyboard | 3901 |
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];
Blurring
There are only two blur qualities available.
- low
- default (Assumed to be "medium")
[blurView setBlurRadiusSetOnce:NO];
[blurView setBlurRadius:10.0];
[blurView setBlurHardEdges:3];
[blurView setBlurWithHardEdges:YES];
[blurView setBlurQuality:@"low"];
Tinting
[blurView setRequiresColorStatistics:YES];
[blurView setUsesColorTintView:YES];
UIColor *color = [UIColor cyanColor];
[blurView setColorTint:color]; // or you may use - (void)transitionToColor:(UIColor *)color;
[blurView setColorTintAlpha:0.8];
[blurView setColorTintMaskAlpha:0.7];
Applying blur settings/style
There are several ways for doing this by methods.
Signature | - (void)transitionIncrementallyToPrivateStyle:(int)style weighting:(float)weight; |
---|---|
Available in | 7.0 – |
Signature | - (void)transitionIncrementallyToStyle:(int)style weighting:(float)weight; |
---|---|
Available in | 7.0 – |
Signature | - (void)transitionToSettings:(_UIBackdropViewSettings *)settings; |
---|---|
Available in | 7.0 – |
Signature | - (void)transitionToPrivateStyle:(int)style; |
---|---|
Available in | 7.0 – |
Signature | - (void)transitionToStyle:(int)style; |
---|---|
Available in | 7.0 – |
For example
_UIBackdropViewSettings *newSettings = [_UIBackdropViewSettings settingsForPrivateStyle:0];
// Whatever configuration for the settings
[blurView setInputSettings:newSettings];
Getting/Parsing all _UIBackdropView objects at runtime
NSArray *blurViews = [_UIBackdropView allBackdropViews];
for (_UIBackdropView *view in blurViews) {
NSLog(@"This _UIBackdropView style is: %d", view.style);
// do any _UIBackdropView configuration here
}
References