【问题标题】:Embedding UITableView within UIView在 UIView 中嵌入 UITableView
【发布时间】:2020-12-11 19:11:04
【问题描述】:

我在 UIScrollView 中有一个 UIView,这两个都是我以编程方式创建的。白色矩形是 UIView。

我想在 UIView 中放置一个 UITableView,以便它们的大小大致相同,但我想在视图顶部为标题留出空间。这是我尝试过的:

let tableView = UITableView(frame: view1.bounds)
    view1.addSubview(tableView)
    tableView.center(in: view1)
    tableView.rowHeight = 30
    tableView.backgroundColor = .blue

除了什么都没有出现。我该如何解决这个问题?

【问题讨论】:

  • 您是否向每一行添加内容?我可能不完全理解这个问题,但据我了解,您要么需要指定行数(如果固定),要么使用 cellForRowAt 方法来填充每个表格单元格。这可能是 tableView 没有出现的原因,如果没有内容它不会显示任何内容。
  • @ColbyHill 是的,我要在行中添加内容,但我的理解是即使没有内容,您仍然可以看到单元格?
  • @ColbyHill 即使我尝试添加文本,也没有显示任何内容。
  • 什么是“我的家人”? center(in:) 是什么?
  • @matt 是一个名为 Tiny Constraints 的 cocoapod 的一部分。它只是将表格视图限制在视图的中心。

标签: ios swift xcode uitableview uiview


【解决方案1】:

如果您没有使用 frame: 参数实例化 UIView,则需要这样做。如果你省略这个,一切看起来都很正常,只需使用view1.size() 方法,除非出于某种原因 tableView 不会出现。

【讨论】:

    【解决方案2】:

    我在下面试过了,我可以看到表格视图。

        let uiView = UIView(frame: CGRect(x: 100, y: 100, width: 200, height: 200))
        self.view.addSubview(uiView)
    
        let tableView = UITableView(frame: uiView.bounds)
        uiView.addSubview(tableView)
        tableView.rowHeight = 30
        tableView.backgroundColor = .blue
        tableView.separatorColor = .black
    

    以下是我的结果:

    您必须删除行 tableView.center(in: view1)

    【讨论】:

    • 不幸的是,删除该行并没有解决问题。表格视图仍然没有出现。
    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多