swift - UITableView 不在 UIView 容器内滚动

标签 swift uitableview

我是一个快速初学者,我遇到了以下问题。

我在 UIView 容器中显示 UITableView 很好。

问题是表格不会向上/向下滚动。

我已经阅读了有关稍微类似问题的线程,它指出完整的表格已正确显示,但它被 UIView 容器的大小剪切,因此在显示所有单元格时不需要滚动它.

所以我的问题是,如何将表格的高度调整到 View 容器的范围内,以便它可以滚动?

enter image description here

这是我的 View Controller 代码:

我在这里声明了 UIView 的导出

@IBOutlet weak var viewOrdersDrinks: UIView!

然后我在 viewDidLoad 中调用此函数,它将 UITableView 作为 subview 加载到 UIView 中。

    func loadOrdersDrinks(){

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

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

}

最佳答案

首先,您必须自动布局 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 添加为 subview 之外,您还必须尊重与添加 subview Controller 相关的其他 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)
}

关于swift - UITableView 不在 UIView 容器内滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45180055/

相关文章:

ios - 如何使用 Alamofire 在获取请求中发送 JSON 正文

ios - 如何设置自调整单元格 iOS8

iphone - 在 UITableView 上显示重新排序控件时启用滑动删除

ios - 为 CGPoint 和 CGVector 创建快速泛型

ios - 如何在 Swift 中调用 Objective C UIView 的 initWithFrame

ios - UINavigationBar BarButtomItem 不会 swift 解除 View Controller

ios - 如何让单元格中的内容 View 占据整个单元格?

ios - UIImagePickerController 和 iCloud 照片

ios - 在哪里可以获得 UITableViewCell 内使用的标签的正确大小

ios - 从 UItableviewcell 重新加载 TableView 数据