У меня возникла проблема со слайдоверкитом слайд-меню на IOS.Он не показывает текст метки при отображении меню, он показывает это только так: Слайд-меню не работает
Он отлично работает на Android.Вот как я это реализовал:
Основной код страницы сведений (.xaml):
<t:SlideMenuView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:menutest"
x:Class="menutest.MainPage"
BackgroundColor="White">
<StackLayout>
<StackLayout Orientation="Vertical" Spacing="0" >
<Frame BackgroundColor="White" HeightRequest="50" HasShadow="False" >
<Label TextColor="Black" Text="johnhastings@hotmail.com" VerticalOptions="End" FontSize="Medium" >
</Label>
</Frame>
<BoxView HeightRequest="10" Color="Black"></BoxView>
<Frame x:Name="client" BackgroundColor="White" HasShadow="False" >
<Label TextColor="Black" Text="CLIENTS ➤" >
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Label.GestureRecognizers>
</Label>
</Frame>
<BoxView HeightRequest="2" Color="Gray"/>
<Frame BackgroundColor="White" HasShadow="False">
<Label TextColor="Black" Text="WIZARD ➤" >
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Label.GestureRecognizers>
</Label>
</Frame>
<BoxView HeightRequest="2" Color="Gray" />
<Frame BackgroundColor="White" HasShadow="False">
<Label TextColor="Black" Text="SETTINGS ➤" >
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Label.GestureRecognizers>
</Label>
</Frame>
<BoxView HeightRequest="2" Color="Gray"/>
<Frame BackgroundColor="White" HasShadow="False">
<Label TextColor="Black" Text="GUIDES AND TEMPLATES ➤" >
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Label.GestureRecognizers>
</Label>
</Frame>
<BoxView HeightRequest="2" Color="Gray"/>
<Frame BackgroundColor="White" HasShadow="False">
<Label TextColor="Black" Text="HELP ➤" >
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Label.GestureRecognizers>
</Label>
</Frame>
<BoxView HeightRequest="2" Color="Gray"/>
<Frame BackgroundColor="White" HasShadow="False">
<Label TextColor="Black" Text="LOGOUT ➤" >
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Label.GestureRecognizers>
</Label>
</Frame>
</StackLayout>
</StackLayout>
<t:SlideMenuView/>
Вот пользовательский рендер, который я использую для IOS (взят из github slideoverkit):
using System;
using Xamarin.Forms;
using SlideOverKit.MoreSample;
using SlideOverKit.MoreSample.iOS;
using Xamarin.Forms.Platform.iOS;
using menutest.iOS;
using UIKit;
using CoreGraphics;
[assembly: ExportRenderer (typeof(MainPage), typeof(PageImpInterfaceRendereiOS))]
namespace menutest.iOS
{
// As your page cannot inherit from MenuContainerPage,
// You must create a renderer page, copy these codes and rename.
public class PageImpInterfaceRendereiOS : PageRenderer, ISlideOverKitPageRendereriOS
{
public Action<bool> ViewDidAppearEvent { get; set; }
public Action<VisualElementChangedEventArgs> OnElementChangedEvent { get; set; }
public Action ViewDidLayoutSubviewsEvent { get; set; }
public Action<bool> ViewDidDisappearEvent { get; set; }
public Action<CGSize, IUIViewControllerTransitionCoordinator> ViewWillTransitionToSizeEvent { get; set; }
public PageImpInterfaceRendereiOS ()
{
new SlideOverKitiOSHandler ().Init (this);
}
protected override void OnElementChanged (VisualElementChangedEventArgs e)
{
base.OnElementChanged (e);
if (OnElementChangedEvent != null)
OnElementChangedEvent (e);
}
public override void ViewDidLayoutSubviews ()
{
base.ViewDidLayoutSubviews ();
if (ViewDidLayoutSubviewsEvent != null)
ViewDidLayoutSubviewsEvent ();
}
public override void ViewDidAppear (bool animated)
{
base.ViewDidAppear (animated);
if (ViewDidAppearEvent != null)
ViewDidAppearEvent (animated);
}
public override void ViewDidDisappear (bool animated)
{
base.ViewDidDisappear (animated);
if (ViewDidDisappearEvent != null)
ViewDidDisappearEvent (animated);
}
public override void ViewWillTransitionToSize (CGSize toSize, IUIViewControllerTransitionCoordinator coordinator)
{
base.ViewWillTransitionToSize (toSize, coordinator);
if (ViewWillTransitionToSizeEvent != null)
ViewWillTransitionToSizeEvent (toSize, coordinator);
}
}
}
Код не имеет проблем.Я тоже пробовал просмотр списка, на видовой ячейке не отображается текст метки, отображаются другие вещи, например цвета.
Заранее спасибо.