2013-12-23 91 views
3

我有文件的結構爲:視圖 - > ScrollView - > TableView。 現在tableView的內容是動態確定的。如果內容非常大,則最後一個表的記錄不可見。我嘗試設置以下代碼:Tableview最後一個單元格不可見使用滾動視圖iOS

self.scrollView.contentSize = CGSizeMake(320.0,568.0); 

[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0) 
         animated:YES]; 

但在橫向模式下創建問題。表格的內容正在滾動到很低的位置。如果滾動時出現的ScrollBar大小減小,它會起作用嗎?對於這個問題的任何其他修復? enter image description here

+0

檢查storyboard/xibs中的自動佈局設置也許有什麼問題 – CainaSouza

+1

這是根據蘋果。 「你不應該在UIS​​crollView對象中嵌入UIWebView或UITableView對象,否則可能會導致意外的行爲,因爲兩個對象的觸摸事件可能混淆並且處理錯誤。」 – santhu

回答

1

您的tableView高度應該是ScreeHeight-NavBarHeight。在你的情況下,它看起來像tableView比可用屏幕高度更高。

作爲一個快速修復,請嘗試以下操作,但理想情況下需要使用約束,以便根據可用屏幕高度自動調整大小。

- (void)viewDidLayoutSubviews { 
    CGFloat navbarHeight = 44; //In iOS7, this is supposed to be 64 but you should dynamically calculate it or better use constraints 
    CGRect tempFrame = self.view.frame; 
    self.tableView.frame = CGRectMake(tempFrame.origin.x, tempFrame.origin.y, tempFrame.size.width, tempFrame.size.height - navbarHeight); 
} 

注:此代碼需要去您的UITableViewController子類

0

你必須考慮到表的視圖行的高度,並同時設置滾動視圖的contentSize的行數。舉例來說,如果你的tableview的高度爲200和tableview中包含3行,你的內容大小的高度應設置如下: -

self.scrollView.contentSize = CGSizeMake(320.0, (200 * 3)); 
[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0) 
        animated:YES]; 
+0

這一個在風景取向的情況下產生問題。標題部分遠遠高於表格部分並顯示一半。試過所有其他的東西,但沒有得到任何突破... –

3

也許這是一種骯髒的,哈哈。使用 -

tableView.contentInset = UIEdgeInsetsMake(0, 0, 120, 0); //values passed are - top, left, bottom, right 

根據您的需要傳遞底部偏移量。

相關問題