iOS8之前无法使用UIVisualEffectView类

5

我了解可以通过程序动态添加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;
    }

但是有没有一种方法可以在故事板中添加视觉效果视图,然后有条件地将它们删除以与iOS7兼容?我尝试过这样做,但一直收到以下错误提示: iOS8之前不可用的类UIVisualEffectView


1
我的建议是仅通过编程方式使用 UIVisualEffectView,而不是在 IB/Storyboard 中添加它,因为 IB/Storyboard 文件在编译时“构建”。您需要在运行时动态地使用视觉效果视图,以支持 iOS 7.x。 - n00bProgrammer
是的,我开始明白了。谢谢。 - Tyler Martin
1个回答

1
不行,但你可以将部署目标更改为iOS 8+以消除错误:


这会消除 所有 iOS 7 的警告和错误。这是错误的做法。 - Ben Lachman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接