我意识到我可以通过编程添加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+,以消除该错误:

10-08 12:18