2009-10-02 56 views
7

我有一個導航控制器下示出的圖。該視圖在頂部包含一個子視圖,在底部包含一個表視圖。根據數據,表格可能具有超出可見高度的行。當我有最後一個可見行下的行時,如果我向上滾動視圖,它會反彈回來,它不會停留在那裏。有沒有辦法讓它留下來? 我試圖讓父視圖滾動視圖,並沒有幫助。我的觀點來自XIB。泰伯維滾動彈回並隱藏底細胞

回答

26

聽起來像是你的UITableView的大小比面積稍大可用在iPhone屏幕上。這可能是因爲該視圖沒有考慮到hte導航欄的大小。作爲一個測試,進入Interface Builder並使UITableView小得多,比如說尺寸的一半,這樣你就可以清楚地看到頂部和底部。看看你是否仍然有同樣的彈跳。

如果尺寸是正確的,UITableView中並不需要一個UIScrollView進行正常操作。事實上,將有幾個原因,我能想到的,現在(比水平滾動的人除外),你會想要一個UIScrollView內的UITableView。

+0

感謝您的觀察,認爲解決了這個問題,你可以讓它更漂亮。 – Umark 2009-10-03 15:52:18

+11

太好了。我從你的歷史中發現,你並沒有選擇任何接受的答案,因爲官方的答案是你的問題。也許你不知道這一點,但在答案的左邊你會看到一個複選標記。如果你點擊你,然後選擇解決問題的答案。這給了我一些聲譽,加上有同樣問題的人,他們看到了哪個答案幫助了你。當你有機會時,請點擊複選標記。謝謝。 – mahboudz 2009-10-05 04:22:25

+0

太棒了,在解決我的問題之前嘗試了一大堆東西。 – 2014-06-15 18:45:58

0

在您的頂級視圖控制器,在「模擬度量」 -settings,機頂盒酒吧和/或底部的條形碼(取決於什麼顯示在您的視圖控制器)設置爲「不透明」。然後調整表格視圖以適應導航欄和工具欄/選項卡欄。 最後,添加兩個約束:

  1. 頂層空間頂部佈局指南
  2. 底部空間來工作非常出色,我底佈局指南

,無論方向。

0

如果你不使用故事板,你可以嘗試以下(SWIFT)代碼:

tableView.contentInset = UIEdgeInsetsMake((self.navigationController!.navigationBar.frame.origin.y + self.navigationController!.navigationBar.frame.size.height), 0, 0, 0) 

self.view.addSubview(tableView) 

如果你有一個工具欄或者(如果您使用的是TabBarController),你需要調整底部太:

tableView.contentInset = UIEdgeInsetsMake((self.navigationController!.navigationBar.frame.origin.y + self.navigationController!.navigationBar.frame.size.height), 0, 0, 0) 

self.view.addSubview(tableView) 

請注意,這是一個簡單和'粗糙'的代碼。如果需要的話:)