2012-12-09 87 views
0

我有一个自定义UITableView集成在我的ViewController中,有更多的元素,我试图添加到UITableView控件来刷新其内容,如Twitter应用程序。问题是我无法在ViewController中捕获tableview的滚动条。如果我设置自定义UITableViewdelegate,那么我可以捕获滚动条,但是我会遇到自定义表格行为的麻烦。 所以,我不知道什么更好,要么找到添加滚动代理而不覆盖任何东西的方式,或者找到一种方法来添加控件来从ViewController而不是从UITableView类刷新表。将代理添加到自定义UITableView

的情况下,更多的细节是:

  • 一个自定义的UITableView库。它被用来像消息应用程序一样绘制对话。所以我只是把这些信息传递给桌子和桌子。我什么都不做,不是委托,什么也没有,只需将表添加到我的ViewController。我在我的ViewController中放置了滚动委托的方法,当我在表格中滚动时,我什么都没有(应用程序没有在滚动的委托方法中输入)。如果我将表的委托设置为self,那么滚动工作正常,但我从表中得到了一些随机问题(我不知道它是如何创建表的),所以我必须放弃此选项(设置委托)。

在此先感谢

+1

设置委托时会出现什么样的麻烦? – Hjalmar

+0

桌面视图就像消息应用程序。问题在于,超过2行的消息无法正确显示,有时一个在另一个上面,例如 – Juanjo

+1

您使用什么类来执行拉到刷新控制?通常他们只是通过将它们分配给滚动视图来工作。他们在内部观察'contentOffset'属性。 – Tricertops

回答

1

尝试使用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]; 
+0

谢谢你,那工作 – Juanjo