【问题标题】:UIBlurEffect is always nilUIBlurEffect 始终为零
【发布时间】:2015-07-13 23:15:41
【问题描述】:

我一直在尝试为我的应用添加模糊效果,并在使用断点对其进行调试时,UIBlurEffect 变量始终为零。

以下是我正在使用的代码:

UIBlurEffect *effect = [[UIBlurEffect alloc] init];
effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *bluredView = [[UIVisualEffectView alloc] initWithEffect: effect];
bluredView.frame = self.view.bounds;
[self.view addSubview:bluredView];

我尝试了几种不同的方法,例如,直接使用它来代替 alloc 和 init UIBlurEffect,如下所示:

UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];

它仍然始终设置为零。 是否有我缺少的导入?我在我的 .h 文件中导入了 UIKit,但由于某种原因,“效果”总是为零。

如果有人有同样的经历,如果你能分享你的经验,我将不胜感激。

任何关于此事的帮助都会很棒! 提前致谢!

【问题讨论】:

  • 您是否认为它是 nil,因为您看不到它或者您如何检测到它?
  • 对不起,我想我应该更清楚地提到这一点。我在以下行设置断点: [self.view addSubview:bluredView];并看到 bluredView 为零。所以我在以下位置设置了一个断点: UIVisualEffectView *bluredView = [[UIVisualEffectView alloc] initWithEffect: effect];并看到效果为零
  • 在实际行下一行设置断点。断点在运行它所在的行之前停止代码,这意味着在测试值时未声明 UIVisualEffectView *bluredView = [[UIVisualEffectView alloc] initWithEffect: effect];。在下面设置断点并将鼠标悬停在要检查的行上。

标签: ios objective-c uikit uivisualeffectview


【解决方案1】:

您在 iOS 7 上运行吗? UIBlurEffect 仅适用于 iOS 8 及更高版本。

【讨论】:

  • 非常感谢您的回复。确实是版本问题。
  • 不客气,@aahay。请在此处接受答案以结束问题。
【解决方案2】:

这两个 Git 可能会对你有所帮助,即使我一开始并没有看到他们使用 UIBlurImage。试试看:)

LBBlurredImage

BTGlassScrollView

【讨论】:

  • 感谢您的回复。我会检查Gits。在我目前的情况下,正如@EwamMellor 指出的那样,它显示为 nil 的设备正在运行 iOS。
猜你喜欢
  • 2016-05-02
  • 2012-01-16
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
相关资源
最近更新 更多