当前位置 : 主页 > 手机开发 > ios >

ios – 当UITableView高度更改时更新其他元素的约束

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有一个UITableView,我在autolayout中将高度定义为200.基于此我在其下面布置其他元素,如UITextField等.在运行时之后,我从服务器获取数据并填充UITableView,因为我正在根据其内容大小更新UITab
我有一个UITableView,我在autolayout中将高度定义为200.基于此我在其下面布置其他元素,如UITextField等.在运行时之后,我从服务器获取数据并填充UITableView,因为我正在根据其内容大小更新UITableView的高度.以下代码我正在使用它

self.myTableView.frame = CGRectMake(0 , 0, self.myTableView.frame.width, self.myTableView.contentSize.height)

但是由于这个原因,放在UITableView下面的所有元素仍然出现在他们在Autolayout中布局时的相同位置.意味着UITableView的高度变化对他们没有任何影响.下图描绘了这个问题.有什么可能解决这个问题?

enter image description here

在这里你可以看到,文本字段在运行时在tableview上重叠.我在Xcode 7.2中使用Swift 2

如果您对表视图和其他视图都有所有必需的约束.

不要更改TableView的框架来更改它的高度.
而是创建tablview的高度约束的IBOutlet.

例如说IBOutlet名称是constraintTableViewHeight,
那么你可以轻松地做到这一点.

constraintTableViewHeight.constant = yourNewHeightValue
//update all constraint of your view and its inner view
self.view.layoutIfNeeded();

请参阅图像以创建高度约束的IBOutlet.

enter image description here

网友评论