3

的底部,我知道有在論壇的問題很多答案,但他們並沒有幫助我。這是我的問題。無法滾動的UITableView

UITableViewUISegmentedControl。在這一段中,數據少於另一段。在旋轉或分段切換後,我調用reloadData以確保顯示整個數據。這樣可行。現在

,用戶點擊一個小區並進入使用同一UISegmentedControl另一視圖。它旨在使用相同的控件,我希望這兩個視圖對數據顯示相同的視角。當用戶在第一個屏幕上看到數據較少的視角時,會出現問題,然後轉到第二個視角並將視角更改爲那裏的數據。然後他回去,無法滾動到桌子底部。如果他旋轉屏幕或更改段,一切都很好。

我試圖通過執行viewWillAppear:並減少/計算tableView的高度來解決問題。不幸的是,它沒有奏效。調用reloadData也沒有幫助。實際上,在切換段時tableView已經被重新加載......但是,我仍然無法看到表格的最後一個單元格。

任何想法?

編輯:

下面是我從測試中獲得(不調整)的高度:

NSLog(@"Before switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height); - >開關之前:372.000000,471.000000

NSLog(@"After switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height); - >後開關:372.000000,585.000000

tableView保持不變,只有contentSize增加。我嘗試設置一個其他的價值的價值,降低了值等,但我真的不知道應該做些什麼......

EDIT2:

所有contentSizeheight價值觀似乎很好。但是,我意識到問題與屏幕上的自定義標題視圖有關。當我從表格視圖中刪除它時,它會滾動到最後。然而,使用標題視圖,它不會。我不會在標題視圖中更改任何內容,它只是表格頂部帶有按鈕的視圖。

+0

的兩個觀點的圖像會有所幫助。 – Bonnie 2013-05-10 13:31:24

+0

當你改變你的tableView的大小時顯示你的代碼 – edzio27 2013-05-10 13:34:51

+0

你有沒有設置tableview的高度? – Dipali 2013-05-10 13:41:54

回答

1

經過幾個小時的實驗後,我將tableViewcontentSize.height屬性增加了1,現在一切正常。我不知道爲什麼這可行,但它是一個解決方案。順便說一句,減少一個屬性導致相同的結果。在這兩種情況下,表格都正確顯示。

+0

Antiohia嗨,我面臨着同樣的問題。你應該確切的代碼和你在哪裏打電話嗎? – gfpacheco 2015-11-09 16:04:12

+0

嗨,我沒有代碼了。基本上,我只是改變了contentSize的高度,迫使視圖更新它。但就我的經驗而言,有很多事情可能導致這個問題,並且在確保所有高度真的很好之後,我將嘗試最後一個解決方案。 – Antiohia 2015-11-10 16:15:47

+1

我試過很多東西,我的高度都很好,我最終改變我的設計= / – gfpacheco 2015-11-10 16:57:09

4

這是因爲你的tableView的框架高度超過了可視面積。將tableView的框架高度降低到可見區域內。你會看到一切。

tableView.contentSize = CGSizeMake(widthYouWant, heightYouWant);