2012-11-24 51 views
4

刷新我有一個實體模型,看起來像這樣:的UITableViewController拉與冷凍頭

mockup1

這是所有的一個大表控制器,你可以滾動。

當節頭撞擊頁面頂部沿頂部結冰,就像這樣:

mockup2

這是工作的罰款。但是,當你回到頂端做一拉刷新,我想它這樣做:

enter image description here

因此刷新對話框拉出現的頂級表頭單元格和節標題(間不再凍結)。

這可能嗎?我在我的搜索中沒有找到像這樣的實現。

+0

如果你想這樣做,然後你將添加拉刷新部分本身,並確保總是至少有一個部分在表中拉動tableview應該添加活動視圖,然後刪除過了一段時間。 – Sandeep

+0

最好的辦法是創建一個'UIViewController',並將表頭自己添加爲'UIView',然後在其下面添加一個'UITableView'。然後將其鏈接並使用'UITableViewDelegate'協議(稍後添加'pull to refresh'附加組件)。 – sooper

回答

1

您可以執行以下操作來實現這一點,

  1. 添加UIScrollViewUIViewController's視圖的子視圖。
  2. 添加UIViewUITableView因爲這滾動視圖
  3. UIView滾動視圖內的子視圖表示表頭單元。
  4. 段頭可以是UITableview的頭,表格內容表示UITableView's單元。
  5. UIRefreshControl作爲UITableView的子視圖並設置其目標方法。
  6. 實施UITableviewUIScrollview的滾動視圖委託- (void)scrollViewDidScroll:(UIScrollView *)scrollView
  7. 當您滾動tableview時,只要表格視圖標題向上移動直到標題到達頂部,就移動父滾動視圖。在scrollview委託中添加一個if條件來檢查這個。
  8. 當表格視圖向下移動時,移動父滾動視圖,直到UIView表格單元格標題在該滾動停止滾動UIScrollview後可見,並允許滾動表格視圖。這將啓用UIRefreshControl

這裏關鍵的是- (void)scrollViewDidScroll:(UIScrollView *)scrollView方法以及如何實現滾動。您可以添加支票contentOffset以確定已滾動多少桌面視圖和滾動視圖。爲了限制滾動,您可以手動將此代理方法中的此值設置爲特定值,並且在此之後不再滾動。