【问题标题】:React Native: detect if UIVisualEffectView is supportedReact Native:检测是否支持 UIVisualEffectView
【发布时间】:2015-06-08 08:30:17
【问题描述】:

我想在我的带有 React Native 的 iOS 应用上使用 react-native-blur,在 iOS 7 上使用不支持 UIVisualEffectView 的替代可视化(例如 backgroundColor)。

例如:

styles = { 
    backgroundColor: isVisualEffectViewSupported ? "transparent" : "rgba(0,0,0,.5)"
}

如何检测当前平台是否支持 UIVisualEffectView?

【问题讨论】:

    标签: ios react-native uivisualeffectview


    【解决方案1】:

    目标-C:

    Class cls = NSClassFromString(@"UIVisualEffectView");
    if (cls) {
        // class exists, do whatever you need with it
    } else {
        // class doesn't exists, fallback
    }
    

    斯威夫特:

    if NSClassFromString("UIVisualEffectView") != nil {
        println("UIVisualEffectView exists")
    } else {
        println("UIVisualEffectView does not exists")
    }
    

    【讨论】:

    • 您好,感谢您的回答,我的问题是针对 react-native。我已经更新了标题以使其更清晰。
    【解决方案2】:

    只需编写一个将iOS版本导出到JS的native模块,然后JS检测版本并决定是否支持UIVisualEffectView。

    【讨论】: