【问题标题】:UIVisualEffectView in iOS7iOS7中的UIVisualEffectView
【发布时间】:2014-12-27 16:17:26
【问题描述】:

下面的 swift 代码行在 iOS8 设备和模拟器上运行良好,但在 iOS7 模拟器上,日志中出现 (lldb) 的 EXC_BAD_ACCESS(code=1,address=0.x20) 错误。

var blurEffectView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light))

编辑:由于此类在 iOS7 中不可用,我已将此声明放在 if 块中,并且仅在 iOS 版本为 8+ 时运行它,但现在它会在我试图删除的代码中抛出未解决的标识符错误 elsehwere这个模糊效果视图(尽管,我正在检查它是否已创建):

if iosVersion >= 8 {
   blurEffectView.removeFromSuperview()
}

【问题讨论】:

  • NS_CLASS_AVAILABLE_IOS(8_0) @interface UIVisualEffectView
  • 你的意思是,iOS7没有这个类?有没有我可以使用的替代品?
  • 是的,iOS7不支持,苹果示例代码中有UIImage+BlurEffect类,请参考*.com/questions/18927178/…
  • 谢谢。我已经相应地编辑了这个问题。
  • 错误信息是什么?

标签: ios xcode swift ios7 ios8


【解决方案1】:

@gabbler 指导的解决方案是将其声明为 AnyObject 可选。然后有条件地(如果是 iOS8)将其更改为 UIVisualEffectView。

【讨论】:

    最近更新 更多