平台:iOS
Mapbox SDK版本:4.0.0
如何在最新版本中更新iconImageName
?
在旧版本中,我使用以下代码:
symbolLayer.iconImageName = [MGLStyleValue valueWithInterpolationMode:MGLInterpolationModeInterval
cameraStops:@{
@8: [MGLStyleValue valueWithRawValue:imageNameOne],
@10: [MGLStyleValue valueWithRawValue:imageNameTwo] }
options: nil];
但在版本4.0.0
中,我尝试使用此代码:
NSDictionary *cameraStops = @{
@8: [NSExpression expressionWithFormat:imageNameOne],
@10: [NSExpression expressionWithFormat:imageNameTwo]
};
symbolLayer.iconImageName = [NSExpression expressionWithFormat:@"mgl_interpolate:withCurveType:parameters:stops:($zoomLevel, 'interval', nil, %@)", cameraStops];
但是收到错误
由于未捕获的异常而终止应用 ' NSInvalidArgumentException',原因:'无效的属性值:[1] [0]: 未知插值类型间隔'。
答案 0 :(得分:2)
mgl_interpolate:withCurveType:parameters:stops:
的曲线类型参数有3个主要参数:linear
,exponential
和cubicBezier
。这样的事情有用吗?
NSDictionary *cameraStops = @{
@8: imageNameOne,
@10: imageNameTwo
};
symbolLayer.iconImageName = [NSExpression expressionWithFormat:@"mgl_step:from:stops:($zoomLevel, nil, %@)", cameraStops];
您可能还会在更新代码时发现此migration guide有用。