我正在创建一个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)
}
}
}
答案 0 :(得分:1)
你可以使用自我调整单元格,在这种情况下你只需要
为您的表格查看单元子视图提供适当的约束(即全部 您的子视图应该相互连接并且最顶层 子视图应该有顶空约束,最底层的子视图应该有底空约束。
指定表格视图的estimatedRowHeight。
将表格视图的rowHeight设置为UITableViewAutomaticDimension
对于上面提到的第2-3步,只需在viewDidLoad中添加以下代码 -
tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension
要了解自行调整大小单元,您可以点击此链接 http://www.appcoda.com/self-sizing-cells/