我在我的 ViewController
中集成了一个自定义 UITableView
,其中包含更多元素,并且我尝试向 UITableView
添加一个控件来刷新它的内容,如 Twitter 应用程序。问题是我无法捕获 ViewController 中 tableview 的滚动。如果我设置自定义 UITableView
的 delegate
,那么我可以捕获滚动,但自定义表格行为会遇到麻烦。
所以,我不知道哪个更好,要么找到添加滚动委托(delegate)而不覆盖任何内容的方法,要么找到添加控件以从 ViewController 而不是从 UITableView 类刷新表格的方法。
更详细的案例是:
自定义 UITableView 的库。它用于像消息应用程序一样绘制对话。所以我只是将信息传递给表格,然后表格绘制它。我不再做任何事情,不委托(delegate),什么也不做,只是将表添加到我的 ViewController 中。
我将滚动委托(delegate)的方法放入 ViewController 中,并且当我在表中滚动时,我什么也得不到(应用程序没有进入滚动的委托(delegate)方法)。如果我将表的委托(delegate)设置为 self,则滚动可以工作,但我从表中得到一些随机问题(我不知道它是如何制作表的),所以我必须放弃此选项(设置委托(delegate))。
提前致谢
最佳答案
尝试使用 UIRefreshControl 对象。您可以在 viewController 中的 viewDidLoad 方法中定义此对象,并在其值发生变化时将目标添加到 tableView 中,下面是一个示例:
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self.tableView action:@selector(reloadData) forControlEvents:UIControlEventValueChanged];
但是,您的 viewController 需要是 UITableViewController。要启动和结束刷新,请使用以下方法:
[self.refreshControl beginRefreshing];
[self.refreshControl endRefreshing];
关于iphone - 将委托(delegate)添加到自定义 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787270/