2017-07-19 76 views
0

我是一個敏捷的初學者,我遇到過以下問題。UITableView不在UIView容器內滾動

我在UIView容器內顯示UITableView就好了。

問題是,表不會向上/向下滾動。

我讀過一個稍微類似的問題的線程,它指向正確顯示的整個表,但它被UIView容器的大小裁剪,因此使它不需要滾動,因爲所有的單元格都在顯示。

所以我的問題是,我如何調整我的表的高度是在視圖容器的範圍內,以便它成爲可滾動?

enter image description here

這是我的視圖控制器代碼:

我宣佈一個出口UIView的這裏

@IBOutlet weak var viewOrdersDrinks: UIView! 

然後我叫我viewDidLoad中這個功能,加載的UITableView到UIView作爲子視圖。

func loadOrdersDrinks(){ 

    let listDrinks: CompletedOrderedDrinksListTableViewController = CompletedOrderedDrinksListTableViewController (nibName: "CompletedOrderedDrinksListTableViewController", bundle: nil) 

    self.addChildViewController(listDrinks) 
    self.viewOrdersDrinks.addSubview(listDrinks.view) 

} 
+0

你檢查你的tableview的'contentSize'? – Codus

+0

你是什麼意思? - 目前表格只是一個佔位符,在每個單元格中顯示8個帶有靜態標籤的單元格。 – RIG

+0

你能提供截圖嗎? – Codus

回答

0

所有你必須自動版式的的tableView填補了家長和這裏的第一個是這樣的一個UIView的擴展:

extension UIView { 
    func anchorToSuperview() { 
     guard let superview = self.superview else { return } 
     self.translatesAutoresizingMaskIntoConstraints = false 
     self.topAnchor.constraint(equalTo: superview.topAnchor).isActive = true 
     self.bottomAnchor.constraint(equalTo: superview.bottomAnchor).isActive = true 
     self.leadingAnchor.constraint(equalTo: superview.leadingAnchor).isActive = true 
     self.trailingAnchor.constraint(equalTo: superview.trailingAnchor).isActive = true 
    } 
} 

另一件事一提的是,除了加入tableViewController作爲一個孩子,你必須尊重與添加子視圖控制器相關的其他API調用。這裏是對documentation的引用。

總而言之,對於正確添加的tableView,你到底代碼應該是這個樣子:

func loadOrdersDrinks() { 
    let listDrinks: CompletedOrderedDrinksListTableViewController = CompletedOrderedDrinksListTableViewController (nibName: "CompletedOrderedDrinksListTableViewController", bundle: nil) 

    self.addChildViewController(listDrinks) 
    self.viewOrdersDrinks.addSubview(listDrinks.tableView) 
    self.listDrinks.tableView.anchorToSuperview() 
    self.listDrinks.didMove(toParentViewController: self) 
} 
+0

感謝您的建議,雖然我試圖將其與我的代碼整合,但我得到一個CompletedOrderDetailsViewController有沒有成員listDrinks錯誤在這些行'self.listDrinks.view.anchorToSuperview() self.listDrinks.didMove(toParentViewController:self )' – RIG

+0

擴展我的tableViewController調用'擴展CompletedOrderedDrinksListTableViewController:UIView'給出'不能從類UIView'繼承' – RIG

+0

只是要清楚,我有一個TableViewController,我想加載到一個單獨的ViewController託管的UIView。 – RIG