Difference between revisions of "UIBackdropView"

From iPhone Development Wiki
Jump to: navigation, search
m (Tinting blur view)
(added more style numbers)
Line 9: Line 9:
 
! Style number
 
! Style number
 
! Comments/Used by
 
! Comments/Used by
 +
|-
 +
| _UIBackdropViewSettingsLight
 +
| 0
 +
| (Also 1000, 1003, and 2020)
 +
|-
 +
| _UIBackdropViewSettingsDark
 +
| 1
 +
| (Also 1001, 1100, 2030)
 
|-
 
|-
 
| _UIBackdropViewSettingsBlur
 
| _UIBackdropViewSettingsBlur
| 0
+
| 2
 
| Common blurring
 
| Common blurring
 +
|-
 +
| _UIBackdropViewSettingsColorSample
 +
| 2000
 +
|
 
|-
 
|-
 
| _UIBackdropViewSettingsUltraLight
 
| _UIBackdropViewSettingsUltraLight
Line 20: Line 32:
 
| _UIBackdropViewSettingsLight
 
| _UIBackdropViewSettingsLight
 
| 2020
 
| 2020
 +
| (Also 10090, 10100)
 +
|-
 +
| _UIBackdropViewSettingsLightLow
 +
| 2029
 
|
 
|
 
|-
 
|-
 
| _UIBackdropViewSettingsDark
 
| _UIBackdropViewSettingsDark
 
| 2030
 
| 2030
| iOS 7 Notification Center (?)
+
| iOS 7 Notification Center (?) (Also 11050, 11060)
 +
|-
 +
| _UIBackdropViewSettingsDarkWithZoom
 +
| 2031
 +
|
 
|-
 
|-
 
| _UIBackdropViewSettingsDarkLow
 
| _UIBackdropViewSettingsDarkLow
Line 32: Line 52:
 
| _UIBackdropViewSettingsColored
 
| _UIBackdropViewSettingsColored
 
| 2040
 
| 2040
|
+
| (Also 10091, 10092, 10120)
 
|-
 
|-
 
| _UIBackdropViewSettingsUltraDark
 
| _UIBackdropViewSettingsUltraDark
 
| 2050
 
| 2050
|
+
| (Also 11070)
 
|-
 
|-
 
| _UIBackdropViewSettingsAdaptiveLight
 
| _UIBackdropViewSettingsAdaptiveLight
Line 44: Line 64:
 
| _UIBackdropViewSettingsSemiLight
 
| _UIBackdropViewSettingsSemiLight
 
| 2070
 
| 2070
 +
|
 +
|-
 +
| _UIBackdropViewSettingsFlatSemiLight
 +
| 2071
 
|
 
|
 
|-
 
|-
 
| _UIBackdropViewSettingsUltraColored
 
| _UIBackdropViewSettingsUltraColored
 
| 2080
 
| 2080
 +
|
 +
|-
 +
| _UIBackdropViewSettingsPasscodePaddle
 +
| 3900
 +
|
 +
|-
 +
| _UIBackdropViewSettingsLightKeyboard
 +
| 3901
 
|
 
|
 
|-
 
|-

Revision as of 19:08, 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
_UIBackdropViewSettingsLight 0 (Also 1000, 1003, and 2020)
_UIBackdropViewSettingsDark 1 (Also 1001, 1100, 2030)
_UIBackdropViewSettingsBlur 2 Common blurring
_UIBackdropViewSettingsColorSample 2000
_UIBackdropViewSettingsUltraLight 2010 Some alert views in Settings app & many white UIs
_UIBackdropViewSettingsLight 2020 (Also 10090, 10100)
_UIBackdropViewSettingsLightLow 2029
_UIBackdropViewSettingsDark 2030 iOS 7 Notification Center (?) (Also 11050, 11060)
_UIBackdropViewSettingsDarkWithZoom 2031
_UIBackdropViewSettingsDarkLow 2039
_UIBackdropViewSettingsColored 2040 (Also 10091, 10092, 10120)
_UIBackdropViewSettingsUltraDark 2050 (Also 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];

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 setUsesColorTintView: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/Parsing all _UIBackdropView objects at runtime

NSArray *blurViews = [_UIBackdropView allBackdropViews];

for (_UIBackdropView *view in blurViews) {
     // do any _UIBackdropView configuration here
}

References