我正在使用 Xamarin.iOS 和 Mapbox iOS SDK 开发一个应用程序(这里是 Naxam.Mapbox.iOS NuGet 包。我在 MapBox iOS SDK 网站中遵循这个示例:https ://docs.mapbox.com/ios/maps /示例/集群/。
我在将这部分代码转换为 C# 时遇到问题:
// Color clustered features based on clustered point counts.
let stops = [
20: UIColor.lightGray,
50: UIColor.orange,
100: UIColor.red,
200: UIColor.purple
]
和:
circlesLayer.circleColor = NSExpression(format: "mgl_step:from:stops:(point_count, %@, %@)", UIColor.lightGray, stops)
如果我这样做,我可以为集群设置一个独特的颜色:
circlesLayer.CircleColor = NSExpression.FromConstant(FromObject(UIColor.Green));
但是,如果我按照示例进行操作,我将无法做到这一点,在其中,表达式格式采用 3 个参数:字符串、UiColor、数组
但是在 C#NSExpression.FromConstant
中,最多接受 2 个参数:字符串和一个NSObject[],所以我创建了这个:(以匹配示例中的数组“stops”)
NSDictionary[] stops = new NSDictionary[]
{
new NSDictionary(new NSNumber(0), FromObject(UIColor.Green)),
new NSDictionary(new NSNumber(20), FromObject(UIColor.Blue)),
new NSDictionary(new NSNumber(100), FromObject(UIColor.Red))
};
但它没有成功,我应该怎么做呢?