拖动UITableView结束

时间:2017-11-09 20:22:22

标签: ios xamarin.ios

我有一个UITableView,需要知道用户的拖动何时结束? (当用户抬起他的手指时)我正在使用Xamarin,但在Swift或Objective-C中的答案会很好。

修改

我试过了:

public class ImageSlideShowTable : UITableView, IUITableViewDelegate
{
    public event EventHandler DragEnded;

    public ImageSlideShowTable()
    {
        this.Delegate = this;
    }

    [Export("scrollViewDidEndDragging:willDecelerate:")]
    public void DraggingEnded(UIScrollView scrollView, bool willDecelerate)
    {
        DragEnded?.Invoke(null, EventArgs.Empty);
    }

    [Export("touchesEnded:touches:evt")]
    public override void TouchesEnded(Foundation.NSSet touches, UIEvent evt)
    {
        base.TouchesEnded(touches, evt);

        // only gets called after I tap the screen
    }
}

DraggingEnded永远不会被调用,TouchesEnded仅在我点按屏幕后被调用。

2 个答案:

答案 0 :(得分:1)

UITableViewDelegate继承UIScrollViewDelegate,因此您可以使用UIScrollView协议方法获取有关拖动事件的通知:

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView;
  • (void)scrollViewDidEndDragging :( UIScrollView *)scrollView willDecelerate:(BOOL)减速;

答案 1 :(得分:0)

我解决了。您需要覆盖DraggingEnded中的TableViewSource方法。