2012-12-09 85 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