如何在swift中创建动态视图?

时间:2016-01-11 15:11:11

标签: ios swift

我正在创建一个IOS应用程序,其中主要布局是UITableView,并且单元格是完全动态的并从服务器加载。每个tableview项都是不同的布局。

例如,让我们看一下tableview的第一项:

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

理想情况下,我想在前一个项目下添加每个布局项目。并且tableviewcell应该根据视图包装,增长或折叠。

我对IOS / Swift相当新。有没有办法轻易实现这一点?在android中我只使用了一个linearlayout并逐个添加了视图。 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 个答案:

答案 0 :(得分:1)

你可以使用自我调整单元格,在这种情况下你只需要

  1. 为您的表格查看单元子视图提供适当的约束(即全部     您的子视图应该相互连接并且最顶层 子视图应该有顶空约束,最底层的子视图应该有底空约束。

    1. 指定表格视图的estimatedRowHeight。

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

  2. 对于上面提到的第2-3步,只需在viewDidLoad中添加以下代码 -

    tableView.estimatedRowHeight = 44.0
    tableView.rowHeight = UITableViewAutomaticDimension
    

    要了解自行调整大小单元,您可以点击此链接 http://www.appcoda.com/self-sizing-cells/