如何在swift中创builddynamic视图?

我正在做一个IOS应用程序的主要布局是一个UITableView,单元格是完全dynamic的,并从服务器加载。 每个tableview项目是不同的布局。

例如,让我们取第一个tableview的项目:

服务器告诉它应该有一个标签,2个button和一个文本框,它应该由代码创build。 我想出了如何自己创造这些元素,问题是我如何定位它们?

理想情况下,我想添加每个布局项目下一个。 而tableviewcell应该包装那些,根据意见成长或崩溃。

我对IOS / Swift相当新。 有没有什么办法可以很容易地实现呢? 在android中,我只是使用了一个线性布局,并逐个添加了视图。 IOS有类似的东西吗? 还是必须手动设置所有项目的高度,宽度和坐标?

提前致谢。

这里是一些代码:

if let Actions = AppData["Forms"][0]["AvailableActions"].array{ for var i = 0 ; i < Actions.count ; ++i { if Actions[i].int == 1{ let actionButton1 = UIButton(frame: CGRectMake(0, 0, 96, 30)) actionButton1.setTitle("View", forState: .Normal) actionButton1.setTitleColor(UIColor.redColor(), forState: .Normal) cell.actionsLayout.addSubview(actionButton1) } } } 

你可以用自我测量的细胞做,在这种情况下,你只需要

  1. 给你的表格视图单元格子视图给予适当的约束(即所有的子视图应该相互连接,最顶层的子视图应该有顶层空间约束,最底层的子视图应该有底层空间约束)。

    1. 指定您的表格视图的estimatedRowHeight。

    2. 将表视图的rowHeight设置为UITableViewAutomaticDimension

对于上述步骤2-3的步骤,只需在viewDidLoad中添加以下代码 –

 tableView.estimatedRowHeight = 44.0 tableView.rowHeight = UITableViewAutomaticDimension 

要了解自我大小的细胞,你可以按照这个链接http://www.appcoda.com/self-sizing-cells/