Ejemplo n.º 1
0
 private void InvokeTapEvent(Xamarin.Forms.View view, Xamarin.Forms.TapGestureRecognizer tgr, UIView uiView, UITapGestureRecognizer nativeTgr)
 {
     if (tgr.Command != null)
     {
         if (tgr.Command.CanExecute(tgr.CommandParameter))
         {
             tgr.Command.Execute(tgr.CommandParameter);
         }
     }
     else
     {
         InvkokeEvent(tgr, "Tapped", view, EventArgs.Empty);
     }
 }
Ejemplo n.º 2
0
        protected override void OnElementChanged(Xamarin.Forms.Platform.iOS.ElementChangedEventArgs <Cross2DView> e)
        {
            base.OnElementChanged(e);

            if (nativeView == null)
            {
                nativeView = new NativeView();
                SetNativeControl(nativeView);

                context = new Context(nativeView, 1.0f /*(float)UIScreen.MainScreen.Scale*/);
            }

            if (e.OldElement != null)
            {
                nativeView.DrawView -= OnDrawView;
                e.OldElement.DeletedInternal();
            }

            if (e.NewElement != null)
            {
                nativeView.DrawView += OnDrawView;
                e.NewElement.CreatedInternal(this);

                foreach (var gr in e.NewElement.GestureRecognizers)
                {
                    if (gr is Xamarin.Forms.TapGestureRecognizer)
                    {
                        Xamarin.Forms.TapGestureRecognizer tgr = gr as Xamarin.Forms.TapGestureRecognizer;
                        nativeView.AddGestureRecognizer(new UITapGestureRecognizer(g =>
                                                                                   { InvokeTapEvent(e.NewElement, tgr, Control, g); })
                        {
                            NumberOfTapsRequired = (nuint)tgr.NumberOfTapsRequired
                        });
                    }
                    else if (gr is Xamarin.Forms.PinchGestureRecognizer)
                    {
                        Xamarin.Forms.PinchGestureRecognizer pgr = gr as Xamarin.Forms.PinchGestureRecognizer;
                        nativeView.AddGestureRecognizer(new UIPinchGestureRecognizer(g =>
                                                                                     { InvkokeEvent(pgr, "PinchUpdated", e.NewElement, CreatePinchEventArgs(Control, g)); }));
                    }
                }
            }
        }