我有一个UITableView,我在autolayout中将高度定义为200.基于此我在其下面布置其他元素,如UITextField等.在运行时之后,我从服务器获取数据并填充UITableView,因为我正在根据其内容大小更新UITab
self.myTableView.frame = CGRectMake(0 , 0, self.myTableView.frame.width, self.myTableView.contentSize.height)
但是由于这个原因,放在UITableView下面的所有元素仍然出现在他们在Autolayout中布局时的相同位置.意味着UITableView的高度变化对他们没有任何影响.下图描绘了这个问题.有什么可能解决这个问题?
在这里你可以看到,文本字段在运行时在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.