gpt4 book ai didi

ios - 构建谓词 (NSExpression) 以确定 Mapbox SymbolStyle 图层的图标颜色

转载 作者:行者123 更新时间:2023-11-28 11:42:28 24 4
gpt4 key购买 nike

我最近开始在 iOS 上使用 Mapbox SDK,我有一些标记要添加到我的 map 中。每个标记代表一个具有多个属性的对象,其中包括:类型属性(返回枚举)和 bool 属性。我定义了一个 MGLSymbolStyleLayer,并且相应地设置了大部分与图标相关的属性。目前,我仅根据对象的“类型”设置图标颜色,如下所示:

let defaultColor = UIColor.blue
layer.iconColor = NSExpression(format: "MGL_MATCH(type, 'type1', %@, 'type2', %@, 'type3', %@, %@)", UIColor.orange, UIColor.purple, UIColor.yellow, defaultColor)

这运行良好,但现在我需要在 NSExpression 中添加一个额外的逻辑来检查每个对象的 bool 属性,如果为真,则将图标颜色设置为红色;否则,根据每个对象的类型确定每个对象的图标颜色(使用上面定义的逻辑)。所以简而言之,我需要一个功能如下的 NSExpression:

if feature.booleanProperty == true {
// set icon color to red
} else {
// set icon color based on the feature type
}

我查看了 Mapbox Predicates and Expressions Reference doc 但我仍然不清楚如何在 NSExpression 中实现这种条件逻辑。谁能告诉我这是否可行,如果可行,怎么做?

最佳答案

根据我的尝试:

NSExpression(format: "TERNARY(booleanProperty=YES, %@, MGL_MATCH(type, 'type1', %@, 'type2', %@, 'type3', %@, %@))", UIColor.red, UIColor.orange, UIColor.purple, UIColor.yellow, defaultColor)

旁注:我只尝试组合三元运算符并在对象上求值,而不是这个特定的表达式。

关于ios - 构建谓词 (NSExpression) 以确定 Mapbox SymbolStyle 图层的图标颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53379307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com