我意识到我可以通过编程添加UIVisualEffects,如果存在该类,则可以有条件地执行。
if([UIVisualEffectView class]){
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
[blurEffectView setFrame:self.backgroundBlurView.bounds];
[self.backgroundBlurView addSubview:blurEffectView];
UIVibrancyEffect *vibrancyEffect = [UIVibrancyEffect effectForBlurEffect:blurEffect];
UIVisualEffectView *vibrancyEffectView = [[UIVisualEffectView alloc] initWithEffect:vibrancyEffect];
[vibrancyEffectView setFrame:self.backgroundVibrancyView.bounds];
[[vibrancyEffectView contentView] addSubview:self.backgroundVibrancyView];
[[blurEffectView contentView] addSubview:vibrancyEffectView];
vibrancyEffectView.center = blurEffectView.center;
}
但是,是否有一种方法可以在 Storyboard 中添加视觉效果 View ,然后有条件地将其删除以与iOS7兼容?我尝试了这个,但一直收到此错误:
类别在iOS8之前的UIVisualEffectView不可用
最佳答案
不。您可以通过以下方式将部署目标更改为iOS 8+,以消除该错误: