iOS Xamarin中的PictureMarkerSymbol不会从本地文件系统加载图像或包含在MainBundle中

时间:2018-03-24 20:20:06

标签: c# ios .net xamarin arcgis

我们有一个使用100.2.1 sdk的iOS应用程序。

我们需要从MainBundle或文件系统加载图像,以根据用户动态更改要加载的图像。

我们正在尝试使用此代码:

    var url = NSBundle.MainBundle.PathForResource("StreetsIconSmall", "png", "Images");
    if (url == null || url.Length == 0)
       return null;

    if (!System.IO.File.Exists(url))
       return null;

    return new Esri.ArcGISRuntime.Symbology.PictureMarkerSymbol(new Uri(url));

该文件存在,并使用buildaction“BundleResource”

进行编译

如果我们在服务器上放置相同的图片并使用http://domain/images/StreetsIconSmall.png等网址,这个相同的代码就可以了。

此外,图像在加载到UIImageView时也能正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您需要NSUrl,则可以直接使用GetUrlForResource方法。

var url = NSBundle.MainBundle.GetUrlForResource("StreetsIconSmall", "png", "Images");

iOS包含区分大小写文件系统,因此在上面的示例中,StreetsIconSmall.png需要位于名为"图像"的子目录中。 (即大写I)否则该方法将返回null

├── Resources
│   ├── Images
│   │   └── StreetsIconSmall.png

注意:当然,需要使用BundleResource

的构建操作进行标记