簡體   English   中英

UITableView 不會滾動到底部(Swift IOS)

[英]UITableView does not scroll to bottom (Swift IOS)

我的 UITableView 不會滾動到底部並在顯示所有內容之前停止(切斷最后幾行)。 我已經檢查過我的 UITableView 是否等於屏幕大小,但內容大小大於屏幕和表格高度。 我不確定為什么會這樣。

1)你的屏幕底部有UITabBar嗎? 此內容可能會被欄覆蓋。 如果是這樣,請轉到您的故事板和您的UIViewController您將UITableView放入並取消選中它是Under Bottom Bars布爾值。

在此處輸入圖片說明

2)您可能在底部設置了一個NSLayoutConstraint為負值。 這意味着您的UITableView將延伸到屏幕底部。 如果是這樣,請將UITableView的底部約束重置為 0.0。

在此處輸入圖片說明

3)您可能想嘗試使用UITableView滾動方法。 獲取最后一個單元格的索引:

[yourTableView scrollToRowAtIndexPath:lastCellIndex 
                 atScrollPosition:UITableViewScrollPositionTop 
                         animated:YES];

4) UITableViewUIScrollView子類。 因此你可以這樣對待它。

如果UITableView中的單元格具有相同的高度,您可以將數據源中的對象數量乘以單元格的高度,然后您就知道要在UIScrollView/TableView方法中輸入什么值作為 contentOffset:

(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

這很可能發生在小型 iPhone 設備中。 因為您沒有正確設置 tableview 的底部約束。 檢查該約束。 如果它不存在添加它。

可能您需要設置自動尺寸:-

您可以使用正確的約束將 tableView 固定到超級視圖,如果您使用自定義 tableview 單元格,然后將所有標簽約束(前導、尾隨、頂部和底部)固定到單元格,然后在您的 ViewController viewDidLoad方法中編寫以下代碼:-

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44.0

一旦您的約束正確,那么您的表格視圖單元格內容大小將根據內容動態調整大小。

筆記:-

如果您使用UITableViewAutomaticDimension不要使用 tableview 委托方法(heightForRowAtIndexPath)來調整高度

在我的情況下......刪除

tableview.frame.size = tableview.contentsize 有效

從屬性檢查器內的故事板取消選中各個 ViewController 的“Under Bottom Bars”解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM