Dav*_*ser 20 blur uilabel ios8
我在iOS 8中使用TodayExtension,我想知道如何将模糊效果应用于文本或按钮.我已经发现它与UIVisualEffectView有关.但我不知道如何使用它.
我正在使用Objective-C
任何人都可以向我解释如何实现这一目标吗?
谢谢,大卫

Bal*_*ick 22
更新了iOS 10的答案
在iOS 10中,您可以使用widgetPrimaryVibrancyEffect和widgetSecondaryVibrancyEffect自动返回UIVibrancyEffect对象.
iOS 9的答案
使用此代码将振动效果应用于整个小部件:
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect notificationCenterVibrancyEffect]];
effectView.frame = self.view.bounds
effectView.autoresizingMask = self.view.autoresizingMask;
__strong UIView *oldView = self.view;
self.view = effectView;
[effectView.contentView addSubview:oldView];
self.view.tintColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)
小智 8
你实际上在这里看两个效果.背景应用了模糊效果,并且标签应用了活力效果.
对于模糊效果,首先使用样式(暗,亮,超轻)初始化UIBlurEffect:
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
Run Code Online (Sandbox Code Playgroud)
对于活力效果,您使用刚刚创建的模糊效果初始化UIVibrancyEffect:
UIVibrancyEffect *vibrancyEffect = [UIVibrancyEffect effectForBlurEffect:blurEffect];
Run Code Online (Sandbox Code Playgroud)
这是因为活力效果需要考虑潜在的模糊效果.
接下来,您将创建两个UIVisualEffectViews:
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
UIVisualEffectView *vibrancyEffectView = [[UIVisualEffectView alloc] initWithEffect:vibrancyEffect];
Run Code Online (Sandbox Code Playgroud)
这些需要添加到视图层次结构中.UIVisualEffectView有一个contentView属性,您必须向其添加要应用相应效果的子视图.确保将vibrancyEffectView添加到blurEffectView的contentView的子视图中.
您也可以在IB中设置所有这些(我正在使用Xcode 6 beta 5).在对象库中有一个"带有模糊的视觉效果视图"和"视觉效果视图,带有模糊和活力",您可以将其拖动到视图中."具有模糊和活力的视觉效果视图"设置了两个如上所述嵌套的UIVisualEffectView.
有关详细信息,请查看WWDC14 Session 221和UIVisualEffectView.h标头.
| 归档时间: |
|
| 查看次数: |
9011 次 |
| 最近记录: |