public void PanGestureUpdated(UIPanGestureRecognizer panGesture) { switch (panGesture.State) { case UIGestureRecognizerState.Ended: case UIGestureRecognizerState.Cancelled: case UIGestureRecognizerState.Failed: { // TODO: wtf is this? //[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(transformingGestureDidFinish) object:nil]; Selector sel = new Selector("transformingGestureDidFinish"); PerformSelector(sel,null,0.1); ScrollEnabled = true; } break; case UIGestureRecognizerState.Began: { TransformingGestureDidBeginWithGesture(panGesture); ScrollEnabled = false; } break; case UIGestureRecognizerState.Changed: { if (panGesture.NumberOfTouches != 2) { panGesture.End(); } PointF translate = panGesture.TranslationInView(this); transformingItem.ContentView.Center = new PointF(transformingItem.ContentView.Center.X + translate.X, transformingItem.ContentView.Center.Y + translate.Y); panGesture.SetTranslation(new PointF(),this); } break; default: { } break; } }