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

Abh*_*bhi 3 iphone uitableview ios swift

我有一个UITableView我在autolayout中将高度定义为200.基于此我在其下面布置其他元素UITextField等等.在运行时之后,我从服务器获取数据并填充,UITableView因为我UITableView根据其内容大小更新高度.以下代码我正在使用它

self.myTableView.frame = CGRectMake(0 , 0, self.myTableView.frame.width, self.myTableView.contentSize.height)
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

Hit*_*nki 6

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

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

例如,说IBOutlet名称是constraintTableViewHeight,那么你可以轻松地进行高度训练.

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

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

在此输入图像描述