这应该不是问题,看看Stackoverflow上的所有答案,但我无法找到如何使用UITableView(不是TableViewController )来做到这一点。我使用以下代码
if (UIDevice.CurrentDevice.CheckSystemVersion(6, 0))
{
_refreshControl = new UIRefreshControl();
_refreshControl.ValueChanged += OnRefreshRequested;
ResultsTableView.RefreshControl = _refreshControl;
}
并注意到有一条警告说该行
ResultsTableView.RefreshControl = _refreshControl;
仅适用于API 10及更高版本?我认为这可能是Xamarin Studios的许多怪癖之一,但是看到它实际上会在任何小于10的操作系统版本上崩溃。除了
NSInvalidArgumentException', reason: '-[UITableView setRefreshControl:]:
unrecognized selector sent to instance 0x15f420c00'
我想了解一下我如何在低于10的操作系统版本中添加刷新控件的帮助。
谢谢。
答案 0 :(得分:7)
希望这将有助于任何仍在努力解决这一问题的人。我必须在我的ViewController顶部声明以下内容
UIRefreshControl refreshControl;
然后我在尝试设置刷新控件时执行了以下操作:
refreshControl = new UIRefreshControl();
refreshControl.AddTarget((sender, args) => GetData(), UIControlEvent.ValueChanged);
if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
{
TableView.RefreshControl = refreshControl;
} else {
TableView.AddSubview(refreshControl);
}
然后,我只需引用RefreshControl
TableView
上的refreshControl
。
答案 1 :(得分:-1)
因为刷新控件专门设计用于由表视图控制器管理的表视图,所以在不同的上下文中使用它会导致未定义的行为。
SDK iOS 6.0 +