protected SlideViewTableCell(string reuseIdentifier) : base(UITableViewCellStyle.Default, reuseIdentifier) { _lpg = new NodeGestureRecognizer((Action <UIPanGestureRecognizer>)((e) => { CGPoint change = e.TranslationInView(this); if (e.State == UIGestureRecognizerState.Changed) { e.CancelsTouchesInView |= Math.Abs(change.X) > 0; if (OnPresentingDetails != null) { OnPresentingDetails(false, this); } if (TopView != null) { TopView.Frame = new CGRect(new CGPoint(change.X <= 0 ? change.X : 0, TopView.Frame.Y), TopView.Frame.Size); } } else if (e.State == UIGestureRecognizerState.Ended) { var width = -TopView.Frame.Width; var presenting = change.X < width / 2; if (OnPresentingDetails != null) { OnPresentingDetails(presenting, this); } var newX = presenting ? width : 0; if (TopView != null) { UIView.Animate(.65d, 0, UIViewAnimationOptions.CurveEaseOut, () => { TopView.Frame = new CGRect(new CGPoint(newX, TopView.Frame.Y), TopView.Frame.Size); }, null); } e.CancelsTouchesInView = false; } })); _lpg.CancelsTouchesInView = false; AddGestureRecognizer(_lpg); }
protected SlideViewTableCell(string reuseIdentifier) : base(UITableViewCellStyle.Default, reuseIdentifier) { _lpg = new NodeGestureRecognizer((Action<UIPanGestureRecognizer>)((e) => { CGPoint change = e.TranslationInView(this); if (e.State == UIGestureRecognizerState.Changed) { e.CancelsTouchesInView |= Math.Abs(change.X) > 0; if (OnPresentingDetails != null) { OnPresentingDetails(false, this); } if(TopView != null) TopView.Frame = new CGRect(new CGPoint(change.X <= 0 ? change.X : 0, TopView.Frame.Y), TopView.Frame.Size); } else if (e.State == UIGestureRecognizerState.Ended) { var width = -TopView.Frame.Width; var presenting = change.X < width / 2; if(OnPresentingDetails != null) { OnPresentingDetails(presenting, this); } var newX = presenting ? width : 0; if(TopView != null) { UIView.Animate(.65d, 0, UIViewAnimationOptions.CurveEaseOut, () => { TopView.Frame = new CGRect(new CGPoint(newX, TopView.Frame.Y), TopView.Frame.Size); }, null); } e.CancelsTouchesInView = false; } })); _lpg.CancelsTouchesInView = false; AddGestureRecognizer(_lpg); }