Esempio n. 1
0
		public override bool GestureRecognizerShouldBegin (UIGestureRecognizer gestureRecognizer)
		{
			if (gestureRecognizer.GetType () == typeof (UIPinchGestureRecognizer) && padTouch != null)
				return false;

			return true;
		}
Esempio n. 2
0
 public void OnDoubleTap(UIGestureRecognizer sender)
 {
     if (scrollView.ZoomScale >= 1)
     scrollView.SetZoomScale(0.25f, true);
      else
     scrollView.SetZoomScale(2f, true);
 }
Esempio n. 3
0
 //implement doubletap handler
 private void OnDoubleTap(UIGestureRecognizer gesture)
 {
     if (scrollView.ZoomScale >= 1)
         scrollView.SetZoomScale(0.25f, true);
     else
         scrollView.SetZoomScale(2f, true);
 }
        protected void AddGestureRecognizer(UIView target, UIGestureRecognizer tap)
        {
            if (!target.UserInteractionEnabled)
                target.UserInteractionEnabled = true;

            target.AddGestureRecognizer(tap);
        }
 public override bool ShouldBegin(UIGestureRecognizer recognizer)
 {
     if (recognizer == Layout.PanGestureRecognizer)
     {
         return Layout.SelectedItemIndexPath != null;
     }
     return true;
 }
Esempio n. 6
0
		private void OnSoloTap(UIGestureRecognizer gesture)
		{
			CGPoint touchPoint = new CGPoint (gesture.LocationInView(scrollView));
			if(imageView.Frame.Contains(touchPoint))
			{
				Console.WriteLine ("збс");
			}			
		}
 public bool ShouldBegin(UIGestureRecognizer recognizer)
 {
     if (recognizer is UIScreenEdgePanGestureRecognizer &&
         ViewControllers.Length == 1) {
         return false;
     }
     return true;
 }
        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            tapRecognizer = new UITapGestureRecognizer (Tapped);
            CollectionView.AddGestureRecognizer (tapRecognizer);
            CollectionView.RegisterClassForCell (typeof (AnimalCell), animalCellId);
			CollectionView.BackgroundColor = UIColor.LightGray;
        }
Esempio n. 9
0
 public void Null()
 {
     using (var gr = new UIGestureRecognizer(Null)) {
         // ensure documented null-friendly methods actually are before releasing them in the wild
         gr.LocationInView(null);
         // can't call LocationOfTouch, 0 is not valid if there's no touch event
         // gr.LocationOfTouch (0, null);
         gr.RemoveTarget(null, null);
     }
 }
        void MessageTapped(UIGestureRecognizer recognizer)
        {
            var view = recognizer.View as MessageView;

            if (view != null)
            {
                DismissMessage(view);
                view.OnTap?.Invoke();
            }
        }
        public override void AddGestureRecognizer(UIGestureRecognizer gestureRecognizer)
        {
            base.AddGestureRecognizer(gestureRecognizer);

            if (gestureRecognizer is UIPanGestureRecognizer panGestureRecognizer)
            {
                gestureRecognizer.ShouldBeRequiredToFailBy      = ShouldBeRequiredToFailBy;
                gestureRecognizer.ShouldRecognizeSimultaneously = ShouldRecognizeSimultaneously;
            }
        }
Esempio n. 12
0
        public GestureHandler(UIElement owner)
        {
            if (owner == null)
            {
                throw new ArgumentNullException(nameof(owner));
            }

            _owner      = owner;
            _recognizer = CreateRecognizer(owner);
        }
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);
            source.Refresh();
            source.PresetSelected = preset => { setPreset(preset); };
#if PIONEER
            panGesture = this.TableView.AddGestures();
#endif
            TableView.ReloadData();
        }
Esempio n. 14
0
    /*public static int CompareGestureDepth(UIGestureRecognizer x, UIGestureRecognizer y)
     * {
     * return x.uiTransformNode.WorldDepth.CompareTo(y.uiTransformNode.WorldDepth);
     * }*/


    /********************************************//**
     *  Update the gestures
     ***********************************************/

    //find the current target node
    //update the gestures
    //gestures report their state, signal events
    //gestures optionally aren't cleared


    static void RecognizerSuccess(UIGestureRecognizer winner)
    {
        for (int i = 0; i < recognizers.Count; i++)
        {
            if (recognizers[i] != winner)
            {
                recognizers[i].OverrideGesture();
            }
        }
    }
        public void RecycleCell(object data, FastGridTemplateSelector dataTemplate, VisualElement parent)
        {
            if (ViewCell == null)
            {
                var cellSize = new Size(Bounds.Width, Bounds.Height);

                if (!(dataTemplate is FastGridTemplateSelector templateSelector))
                {
                    throw new NotSupportedException(@"DataTemplate should be FastGridTemplateSelector");
                }

                var template = templateSelector.SelectTemplate(data) as FastGridDataTemplate;
                ViewCell = template?.CreateContent() as FastGridCell;
                cellSize = template?.CellSize ?? cellSize;

                if (ViewCell != null)
                {
                    ViewCell.BindingContext = data;
                    ViewCell.PrepareCell(cellSize);
                    ViewCell.Parent = parent;

                    _originalBindingContext = data;
                    _view = ConvertFormsToNative(ViewCell.View, new Rectangle(new Point(0, 0), cellSize));
                }

                if (_view == null)
                {
                    return;
                }

                _view.AutoresizingMask = UIViewAutoresizing.All;
                _view.ContentMode      = UIViewContentMode.ScaleAspectFit;
                _view.ClipsToBounds    = true;

                ContentView.AddSubview(_view);
            }
            else if (data == _originalBindingContext)
            {
                ViewCell.BindingContext = _originalBindingContext;
            }
            else
            {
                ViewCell.BindingContext = data;
            }

            var gr = GestureRecognizers;

            if (gr != null && gr.Length > 0)
            {
                gr.ForEach(RemoveGestureRecognizer);
            }

            _tapGestureRecognizer = new UITapGestureRecognizer(Tapped);
            AddGestureRecognizer(_tapGestureRecognizer);
        }
        private void OnSingleTap(UIGestureRecognizer gesture)
        {
            if (imageHelper.images.Count > 0)
            {
                var postingImageVC = new FullScreenImageViewController();
                postingImageVC.ImageLinks = imageHelper.images;
                postingImageVC.ImageIndex = CurrentImageIndex;

                this.owner.ShowViewController(postingImageVC, this);
            }
        }
 bool _NativeRecognizer_ShouldBegin(UIGestureRecognizer recognizer)
 {
     if (Recognizer.OnGestureShouldBeginDelegate != null)
     {
         return(Recognizer.OnGestureShouldBeginDelegate(Recognizer));
     }
     else
     {
         return(true);
     }
 }
 //implement doubletap handler
 private void OnDoubleTap(UIGestureRecognizer gesture)
 {
     if (scrollView.ZoomScale >= 1)
     {
         scrollView.SetZoomScale(0.25f, true);
     }
     else
     {
         scrollView.SetZoomScale(2f, true);
     }
 }
        private bool ShouldRecognizeSimultaneously(UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
        {
            bool isPanGestureHandled = IsPanGestureHandled();

            if ((isPanGestureHandled && _isPressed) /*|| Element.IsSnapToItemNeeded*/)
            {
                otherGestureRecognizer.State = UIGestureRecognizerState.Cancelled;
            }

            return(isPanGestureHandled);
        }
Esempio n. 20
0
 protected void SwipeRight(UIGestureRecognizer sender)
 {
     if (currentPos > 0)
     {
         foreach (var iv in imageViews)
         {
             iv.Center = new PointF(iv.Center.X + 1024, iv.Center.Y);
         }
         currentPos -= 1024;
     }
 }
        public bool ShouldRecognizeSimultaneously(UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
        {
            //if (gestureRecognizer is UIPanGestureRecognizer)
            //{
            //    var panRecognizer = (UIPanGestureRecognizer)gestureRecognizer;
            //    var yVelocity = panRecognizer.VelocityInView(panRecognizer.View).Y;
            //    return Math.Abs(yVelocity) <= 0.25f;
            //}

            return(true);
        }
Esempio n. 22
0
 public bool ShouldRecognizeSimultaneously(UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
 {
     if (gestureRecognizer == longPressGestureRecognizer)
     {
         return(otherGestureRecognizer is UILongPressGestureRecognizer);
     }
     else
     {
         return(false);
     }
 }
Esempio n. 23
0
 bool OnShouldReceiveTouch(UIGestureRecognizer recognizer, UITouch touch)
 {
     foreach (UIView v in ViewAndSuperviewsOfView(touch.View))
     {
         if (v != null && (v is UITableView || v is UITableViewCell || v.CanBecomeFirstResponder))
         {
             return(false);
         }
     }
     return(true);
 }
Esempio n. 24
0
 public void OnDoubleTap(UIGestureRecognizer sender)
 {
     if (scrollView.ZoomScale >= 1)
     {
         scrollView.SetZoomScale(0.25f, true);
     }
     else
     {
         scrollView.SetZoomScale(2f, true);
     }
 }
Esempio n. 25
0
 protected void SwipeLeft(UIGestureRecognizer sender)
 {
     if (currentPos < 1024 * (imageViews.Count - 1))
     {
         foreach (var iv in imageViews)
         {
             iv.Center = new PointF(iv.Center.X - 1024, iv.Center.Y);
         }
         currentPos += 1024;
     }
 }
    public override bool ShouldRecognizeSimultaneously(UIGestureRecognizer gestureRecognizer,
                                                       UIGestureRecognizer otherGestureRecognizer)
    {
        if (gestureRecognizer is TouchGestureRecognizer rec && otherGestureRecognizer is UIPanGestureRecognizer &&
            otherGestureRecognizer.State == UIGestureRecognizerState.Began)
        {
            rec.TryEndOrFail();
        }

        return(true);
    }
        public override bool ShouldRecognizeSimultaneously(UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
        {
            if (gestureRecognizer is TouchUITapGestureRecognizer touchGesture && otherGestureRecognizer is UIPanGestureRecognizer &&
                otherGestureRecognizer.State == UIGestureRecognizerState.Began)
            {
                touchGesture.HandleTouch(TouchStatus.Canceled, TouchInteractionStatus.Completed).SafeFireAndForget();
                touchGesture.IsCanceled = true;
            }

            return(true);
        }
Esempio n. 28
0
        public void OnSingleTap(UIGestureRecognizer sender)
        {
            UIImageView hiResImageView = new UIImageView(UIScreen.MainScreen.ApplicationFrame);

            hiResImageView.BackgroundColor = UIColor.Black;
            hiResImageView.ContentMode     = UIViewContentMode.ScaleAspectFit;
            hiResImageView.SetImage(new NSUrl(_item.cover_image_url_hires), UIImage.FromBundle("placeholder_image.png"),
                                    SDWebImageOptions.RetryFailed, null);

            View.Add(hiResImageView);
        }
Esempio n. 29
0
        public override bool GestureRecognizerShouldBegin(UIGestureRecognizer gestureRecognizer)
        {
            //Preventing standard actions on UITextView that are triggered after long press
            if (gestureRecognizer is UILongPressGestureRecognizer longpress &&
                longpress.MinimumPressDuration == .5)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 30
0
 public virtual bool ShouldRecognizeSimultaneously(UIGestureRecognizer g1, UIGestureRecognizer g2)
 {
     if (g1.View != this)
     {
         return(false);
     }
     if (g1.View != g2.View)
     {
         return(false);
     }
     return(true);
 }
Esempio n. 31
0
        private void OnLongPress(UIGestureRecognizer recognizer)
        {
            if (recognizer.State == UIGestureRecognizerState.Began)
            {
                BecomeFirstResponder();

                var copyMenu = UIMenuController.SharedMenuController;
                copyMenu.SetTargetRect(Bounds, this);
                copyMenu.ArrowDirection = UIMenuControllerArrowDirection.Default;
                copyMenu.SetMenuVisible(true, true);
            }
        }
Esempio n. 32
0
        void AdjustAnchorPointForGestureRecognizer(UIGestureRecognizer gestureRecognizer)
        {
            if (gestureRecognizer.State == UIGestureRecognizerState.Began)
            {
                var image               = gestureRecognizer.View;
                var locationInView      = gestureRecognizer.LocationInView(image);
                var locationInSuperview = gestureRecognizer.LocationInView(image.Superview);

                image.Layer.AnchorPoint = new CGPoint(locationInView.X / image.Bounds.Size.Width, locationInView.Y / image.Bounds.Size.Height);
                image.Center            = locationInSuperview;
            }
        }
Esempio n. 33
0
		// Ensure that the pinch, pan and rotate gestures are all recognized simultaneously
		public override bool ShouldRecognizeSimultaneously (UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
		{	
			// if the gesture recognizers views differ, don't recognize
			if (gestureRecognizer.View != otherGestureRecognizer.View)
				return false;
			
			// if either of the gesture recognizers is a long press, don't recognize
			if (gestureRecognizer is UILongPressGestureRecognizer || otherGestureRecognizer is UILongPressGestureRecognizer)
				return false;
			
			return true;
		}
Esempio n. 34
0
 private void AnimateFadeOut(UIGestureRecognizer sender)
 {
     _idView.Transform = CGAffineTransform.MakeScale(1, 1);
     if ((int)_idView.Alpha * 1000 == 1000)
     {
         UIView.Animate(0.5, 0, UIViewAnimationOptions.CurveEaseInOut, () =>
         {
             _idView.Alpha     = 0;
             _idView.Transform = CGAffineTransform.MakeScale(0, 0);
         }, StartAnyline);
     }
 }
 public override bool ShouldRecognizeSimultaneously(UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
 {
     if (gestureRecognizer == Layout.LongPressGestureRecognizer)
     {
         return Layout.PanGestureRecognizer == otherGestureRecognizer;
     }
     if (gestureRecognizer == Layout.PanGestureRecognizer)
     {
         return Layout.LongPressGestureRecognizer == otherGestureRecognizer;
     }
     return false;
 }
 protected void AnimateFadeOut(UIGestureRecognizer sender)
 {
     idView.Transform = CGAffineTransform.MakeScale((nfloat)1, (nfloat)1);
     if (idView.Alpha == 1.0)
     {
         UIView.Animate(0.5, 0, UIViewAnimationOptions.CurveEaseInOut, () =>
         {
             idView.Alpha     = 0;
             idView.Transform = CGAffineTransform.MakeScale((nfloat)0, (nfloat)0);
         }, () => StartAnyline());
     }
 }
Esempio n. 37
0
        public static Xamarin.Forms.Point[] GetTouches(this UIGestureRecognizer gestureRecognizer, UIView view, int requiredTouches, BaseGestureEventArgs previous)
        {
            nint numberOfTouches = gestureRecognizer.NumberOfTouches;

            if (numberOfTouches < requiredTouches && previous != null)
            {
                return(view == null
                    ? previous.WindowTouches
                    : previous.ElementTouches);
            }
            return(iOSEventArgsHelper.GetTouches(gestureRecognizer, view));
        }
            public override bool ShouldReceiveTouch(UIGestureRecognizer recognizer, UITouch touch)
            {
                var point = touch.LocationInView(_controller.TopNavigationController.View);

                if (_controller.ShoudIgnoreTouch(point))
                {
                    return(false);
                }

                return((_controller.LeftMenuVisible || _controller.RightMenuVisible ||
                        (touch.LocationInView(_controller._internalTopNavigationController.View).Y <= _controller.SlideHeight)) && _controller.MenuEnabled);
            }
Esempio n. 39
0
            static void Tapped(UIGestureRecognizer recognizer)
            {
                var selector = (SelectGestureRecognizer)recognizer;

                var table = (UITableView)recognizer.View;

                if (!selector._lastPath.Equals(table.IndexPathForSelectedRow))
                {
                    table.SelectRow(selector._lastPath, false, UITableViewScrollPosition.None);
                }
                table.Source.RowSelected(table, selector._lastPath);
            }
 void OnRotated(UIGestureRecognizer gr)
 {
     if (!_element.IsVisible)
     {
         return;
     }
     if (!_pinching)
     {
         _rotating = true;
         OnPinchAndRotate(gr);
     }
 }
Esempio n. 41
0
		//implement doubletap handler
		private void OnDoubleTap (UIGestureRecognizer gesture) 
		{
		/*	TouchesBegan += (NSSet touches, UIEvent evt) => {
				Console.WriteLine ("TouchesBegan works");
				base.TouchesBegan (touches, evt);
			}; */

			if (scrollView.ZoomScale >= 1)
			{
				scrollView.SetZoomScale(0.25f, true);
			}
			else
			{
				scrollView.SetZoomScale(2f, true);
			}
		}	
			// Ensure that the pinch, pan and rotate gestures are all recognized simultaneously
			public override bool ShouldRecognizeSimultaneously (UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
			{
				// if the gesture recognizers's view isn't one of our images don't recognize
				if (gestureRecognizer.View != controller.firstImage &&
					gestureRecognizer.View != controller.secondImage &&
					gestureRecognizer.View != controller.thirdImage)
					return false;
				
				// if the gesture recognizers views differ, don't recognize
				if (gestureRecognizer.View != otherGestureRecognizer.View)
					return false;
				
				// if either of the gesture recognizers is a long press, don't recognize
				if (gestureRecognizer is UILongPressGestureRecognizer || otherGestureRecognizer is UILongPressGestureRecognizer)
					return false;
				
				return true;
			}
Esempio n. 43
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (_swipeDown != null)
         {
             _swipeDown.Dispose();
             _swipeDown = null;
         }
         if (_swipeLeft != null)
         {
             _swipeLeft.Dispose();
             _swipeLeft = null;
         }
         if (_swipeRight != null)
         {
             _swipeRight.Dispose();
             _swipeRight = null;
         }
         if (_swipeUp != null)
         {
             _swipeUp.Dispose();
             _swipeUp = null;
         }
         if (_doubleTap != null)
         {
             _doubleTap.Dispose();
             _doubleTap = null;
         }
         if (_singleTap != null)
         {
             _singleTap.Dispose();
             _singleTap = null;
         }
         if (_pinch != null)
         {
             _pinch.Dispose();
             _pinch = null;
         }
     }
     // don't try and dispose the base - it will try and dispose of the native control that we didn't create
     //base.Dispose(disposing);
 }
		public MyToast(TopAlert alert) : base(RectangleF.Empty)
		{
			this._Alert = alert;

			BackgroundColor = this._Alert.BackgroundColor.ToUIColor ();
			ClipsToBounds = false;
			UserInteractionEnabled = true;

			_Label = new UILabel { 
				Text = this._Alert.Text, 
				LineBreakMode = UILineBreakMode.TailTruncation, 
				TextColor = this._Alert.TextColor.ToUIColor() 
			};

			if (this._Alert.TextSize > 0) {
				this._Label.Font = UIFont.SystemFontOfSize (this._Alert.TextSize);
			}

			this.AddSubview (this._Label);

			var w = UIApplication.SharedApplication.KeyWindow.Frame;

			var intent = alert.Intent;

			this.Frame = new CGRect (intent, TopBarSize() + alert.TopOffset, 
				w.Width - intent * 2, (this._Alert.AlertHeight < 0 ? 40 : this._Alert.AlertHeight));

			NSNotificationCenter.DefaultCenter.AddObserver(UIDevice.OrientationDidChangeNotification, OrientationChanged);

			this._Gest1 = new UITapGestureRecognizer(MessageTapped);
			this._Gest2 = new UISwipeGestureRecognizer (MessageTapped);
			this.AddGestureRecognizer(this._Gest1);
			this.AddGestureRecognizer(this._Gest2);

			this.PerformSelector (new ObjCRuntime.Selector ("TimerElaspsed:"), null, this._Alert.Duration);
		}
 private void series_clicked(object sender, Steema.TeeChart.Styles.Series s, int valueIndex, UIGestureRecognizer e)
 {
     Console.WriteLine("Series clicked");
 }
 private bool chart_clickBackGround(UIGestureRecognizer recognizer, UITouch touch)
 {
     //Console.WriteLine("BackGround clicked");
     return false;
 }
Esempio n. 47
0
        private bool GestureRecognizerShouldBegin (UIGestureRecognizer recognizer)
        {
            // Make sure we're not mid transition or have too few view controllers
            var transitionCoordinator = this.GetTransitionCoordinator ();
            if (transitionCoordinator != null && transitionCoordinator.IsAnimated) {
                return false;
            }
            if (ViewControllers.Length <= 1) {
                return false;
            }

            var fromViewController = ViewControllers [ViewControllers.Length - 1];
            var toViewController = ViewControllers [ViewControllers.Length - 2];

            var fromDurationViewController = fromViewController as DurationChangeViewController;

            if (fromDurationViewController != null && fromDurationViewController.PreviousControllerType == toViewController.GetType ()) {
                if (recognizer == interactiveEdgePanGestureRecognizer) {
                    return true;
                }
            } else if (recognizer == InteractivePopGestureRecognizer) {
                return true;
            }

            return false;
        }
Esempio n. 48
0
 private void OnDoubleTap(UIGestureRecognizer gesture)
 {
     PresentingViewController.DismissViewController(true, null);
 }
            public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch)
            {
                if (!_controller.PanGestureEnabled)
                    return false;

                if (_controller.IsOpen)
                    return true;

                var locationInView = touch.LocationInView(_controller.ContainerView);

                if (locationInView.Y <= _controller._slideHandleHeight)
                {
                    // This is a hack that I don't like but need for now
                    var topNavigationController = _controller.MainViewController as UINavigationController;
                    if (topNavigationController != null && topNavigationController.ViewControllers.Length == 1)
                        return true;

                    if (_controller.EnableInteractivePopGestureRecognizer && locationInView.X <= 10f)
                        return false;
                    return true;
                }

                return false;
            }
Esempio n. 50
0
 public override bool CanPreventGestureRecognizer(UIGestureRecognizer preventedGestureRecognizer)
 {
     return CancelsTouchesInView;
 }
Esempio n. 51
0
 public override bool CanBePreventedByGestureRecognizer(UIGestureRecognizer preventingGestureRecognizer)
 {
     return !CancelsTouchesInView;
 }
Esempio n. 52
0
 /// <summary>
 /// Gestures the recognizer should begin.
 /// </summary>
 /// <returns><c>true</c>, if recognizer should begin was gestured, <c>false</c> otherwise.</returns>
 /// <param name="gestureRecognizer">Gesture recognizer.</param>
 public override bool GestureRecognizerShouldBegin(UIGestureRecognizer gestureRecognizer)
 {
     return true;
 }
Esempio n. 53
0
		void MessageTapped (UIGestureRecognizer recognizer)
		{
			var view = recognizer.View as MessageView;
			if (view != null) {
				DismissMessage (view);
                view.OnTap?.Invoke();
			}
		}
		bool ShouldReceiveTouch (UIGestureRecognizer gestureRecognizer, UITouch touch)
		{
			if (touch.View != View)
				return false;

			return true;
		}
 internal bool shouldReceiveTouch(UIGestureRecognizer gesture, UITouch touch)
 {
     if (ShouldReceiveTouch != null)
         return ShouldReceiveTouch(gesture, touch);
     return true;
 }
		/// <summary>
		/// We want to prevent any other gesture to be recognized on the window!
		/// </summary>
		/// <param name="preventingGestureRecognizer">Preventing gesture recognizer.</param>
		public override bool CanBePreventedByGestureRecognizer (UIGestureRecognizer preventingGestureRecognizer)
		{
			return State != UIGestureRecognizerState.Began;
		}
Esempio n. 57
0
		bool OnShouldReceiveTouch(UIGestureRecognizer recognizer, UITouch touch)
		{
			foreach (UIView v in ViewAndSuperviewsOfView(touch.View))
			{
				if (v is UITableView || v is UITableViewCell || v.CanBecomeFirstResponder)
					return false;
			}
			return true;
		}
Esempio n. 58
0
			static void Tapped(UIGestureRecognizer recognizer)
			{
				var selector = (SelectGestureRecognizer)recognizer;

				var table = (UITableView)recognizer.View;

				if (!selector._lastPath.Equals(table.IndexPathForSelectedRow))
					table.SelectRow(selector._lastPath, false, UITableViewScrollPosition.None);
				table.Source.RowSelected(table, selector._lastPath);
			}
		async void HandleTapGestureAsync (UIGestureRecognizer tap)
		{
			if (tap.State == UIGestureRecognizerState.Recognized) {

				UIImage image;

				UIGraphics.BeginImageContextWithOptions(UIScreen.MainScreen.Bounds.Size, true, 0);

				UIApplication.SharedApplication.Windows[0].DrawViewHierarchy(UIScreen.MainScreen.Bounds, false);

				image = UIGraphics.GetImageFromCurrentImageContext();

				UIGraphics.EndImageContext();

//				image.SaveToPhotosAlbum((i, e) => {
//					
//				});

				await TrapState.Shared.AddSnapshotImageForSdk(image);

				// BugTrapState.SnapshotImage = image;

				var storyboard = UIStoryboard.FromName("bugTrapKit", NibBundle);

				var navController = storyboard.Instantiate<BtAnnotateImageNavigationController>();

				PresentViewController(navController, false, null);
			}
		}
		public bool ShouldRecognizeSimultaneously (UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer)
		{
			return true;
		}