В настоящее время я пытаюсь создать приложение для рисования на iOS.Это будет только прототип.Позже я перенесу существующее приложение (на основе MvvmCross) на iOS.Поэтому я настроил проект Xamarin.Forms и включил MvvmCross 6.2.2 Framework в соответствии с TipCalcTutorial .Это отлично работает (я просто собираю его для iOS 12.1 с помощью iPhone Simulator в Visual Studio для Mac).
Но мне не удалось включить SkiaSharp Framework версии 1.6.Я добавил пакет SkiaSharp.Views.Forms из NuGet и интегрировал SKCanvasView в свой XAML (приложение имеет только это представление).
Но когда я запускаю свое приложение, оно не запускается, и я получаю следующее исключение:
NSInternalInconsistencyException Причина: ожидается, что окна приложений будут иметь корневой контроллер представления в конце запуска приложения
Если я закомментирую SKCanvasView, он будет работать.Я провел некоторое исследование, но я не нашел решения для этого.Я мог предположить, что у SkiaSharp есть проблемы с измененной структурой проекта iOS (из-за MvvmCross больше нет ViewController).
Вот мой вид с элементами SkiaSharp:
<views:MvxContentPage x:TypeArguments="viewModels:MainViewModel"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clrnamespace:MvvmCross.Forms.Views;assembly=MvvmCross.Forms"
xmlns:mvx="clr-namespace:MvvmCross.Forms.Bindings;assembly=MvvmCross.Forms"
xmlns:viewModels="clr-namespace:FormsPrototype.Core.ViewModels;assembly=FormsPrototype.Core"
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
x:Class="FormsPrototype.UI.Pages.MainView">
<ContentPage.Content>
<Grid x:Name="ContentGrid">
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="3*"/>
</Grid.RowDefinitions>
<StackLayout Orientation="Vertical" Grid.Row="0">
<Label Text="Xamarin Drawing Prototype" />
<Button Text="Start" Command="{Binding StartSimCmd}" />
</StackLayout>
<!-- Canvas-->
<skia:SKCanvasView Grid.Row="1" PaintSurface="OnPaintSurface">
</skia:SKCanvasView>
</Grid>
</ContentPage.Content>
Так можно ли использовать SkiaSharp Framework с Xamarin.Forms и MvvmCross?И как я могу это сделать?