Xamarin IOS SlideOver Kit SlideMenu не работает - PullRequest
0 голосов
/ 18 сентября 2018

У меня возникла проблема со слайдоверкитом слайд-меню на 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);            
                }
            }
        }

Код не имеет проблем.Я тоже пробовал просмотр списка, на видовой ячейке не отображается текст метки, отображаются другие вещи, например цвета.

Заранее спасибо.

...