2017-07-19 78 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