SyncFusion SfChart无法在iOS模拟器(白屏)中呈现,但在Visual Studio预览中显示吗?

时间:2019-08-05 19:16:03

标签: xamarin syncfusion

今天,我正在使用新的SFCharts社区许可证。我已经通过教程在Xamarin中创建了一个简单的图表解决方案,并且从所有方面来看,它都可以正常工作。我也在Visual Studio 2019(Mac)中编写它,尽管我也在PC上做了很多工作。

当我在Visual Studio的“预览”模式下查看项目时,它似乎可以很好地呈现(请参见屏幕截图)。 ![1]:https://ibb.co/Dtrf0y1“预览”

当我在Android中启动它时,它似乎可以正常渲染(请参见屏幕截图)。 ![2]:https://ibb.co/4mdzRQ7“ Android”

但是当我在iOS模拟器中启动它时,除了白屏什么都没有。甚至没有头条新闻,只有白色。 ![3]:https://ibb.co/YQdcXM8“ iOS”

有什么想法可能会出错吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

您是否已将此代码添加到AppDelegate.cs类中?

public override bool FinishedLaunching(UIApplication app, NSDictionary options) 
{ 
   … 

 global::Xamarin.Forms.Forms.Init();

 **Syncfusion.SfChart.XForms.iOS.Renderers.SfChartRenderer.Init();**

 LoadApplication(new App()); 
 …
}

请参考此链接: [https://help.syncfusion.com/xamarin/sfchart/getting-started#launching-the-application-on-each-platform-with-chart]

答案 1 :(得分:0)

默认情况下,Xamarin不会在iOS和macOS项目中加载渲染器程序集。因此,为了解决此问题,如下所述,通过在各个项目中调用SfChartRenderer类的静态Init方法来手动加载它。

iOS项目

iOS项目中AppDelegate类的FinishedLaunching重写方法中的SfChartRenderer的Init方法调用,如下所示。

 public override bool FinishedLaunching(UIApplication app, NSDictionary options)
 { 
   ... 
   Syncfusion.SfChart.XForms.iOS.Renderers.SfChartRenderer.Init(); 
   ... 
 }

macOS项目

在macOS Project中,AppDelegate类的DidFinishLaunching重写方法中的SfChartRenderer的调用Init方法如下所示。

 public override void DidFinishLaunching(NSNotification notification)
 { 
   ... 
   Syncfusion.SfChart.XForms.MacOS.SfChartRenderer.Init(); 
   ... 
 }