捕获滚动​​事件会停止RowSelected事件(UITableView,Xamarin,MonoTouch)

时间:2014-01-30 10:54:27

标签: c# ios xamarin.ios xamarin

我有一个UITableView,我正在使用UITableViewSource的子类来控制数据,就像在默认的主从细节应用程序设置中一样。

当我点击一行时,我得到一个RowSelected事件,一切都很顺利。

如果我在列表中捕获滚动事件但是我得到了滚动事件但我停止了获取RowSelected回调。

TableView.Source = _dataSource = new DataSource (this);

// STOPS RowSelected callback from being called
TableView.Scrolled += (sender, e) => {
};

有没有人经历过这个或有过解决方法,以便我可以检测RowSelected事件以及捕获滚动事件?

我的目的是进行“加载更多”检测,以便在列表滚动到最后时自动从Web服务加载更多项目。

谢谢!

1 个答案:

答案 0 :(得分:1)

确定找到了解决方案!

我还是iOS开发和Xamarin的新手,但接下来的页面提到'你不应该将Objective-C代表与C#事件混合'。

http://forums.xamarin.com/discussion/6136/uitableviewsource-scrolled-is-not-fired-in-debug-mode-on-iphone-device

我不完全理解Objective-C委托的工作方式,但是我怀疑是否重写了即使我以某种方式更改了内部事件处理程序?

要捕获滚动事件,UITableViewSource有一个名为'Scrolled'的有用方法,只需要覆盖以捕获事件!