我有一个容器视图,它位于主 UIViewConroller 的左侧。这个容器视图由底部的几个按钮构成,中间的 UITableView 显示用户数据,顶部的另一个 UITableView 显示选定的用户数据。我想要这个顶级 UITableView 的行为,如果没有选定的数据,它就会消失,如果有,它会达到 200 的最大高度。选择的每个数据项将等同于表中的一个条目。
看看照片。在它运行的图片中,我加载了一个名为“test”的选定数据项:
无论如何,我遇到的问题与 Interface Builder 创建的布局约束有关。以下是我为动态调整数据表和选定数据表大小而采取的步骤。
我已将最顶部的 TableView 设置为 <= 200,将中间的保留为默认值,然后添加此代码来调整顶部表格的大小:
-(void)setSelectedFacets:(NSArray *)selectedFacets{
_selectedFacets = selectedFacets;
[self.selectedFacetsTableView reloadData];
CGRect frame = self.selectedFacetsTableView.frame;
frame.size.height = 10 ;//36 * selectedFacets.count;
self.selectedFacetsTableView.frame = frame;
[self.selectedFacetsTableView setNeedsDisplay];
[self.view setNeedsDisplay];
}
上面的代码片段确实执行(在视图控制器完全加载后),但对实际高度没有影响。
有没有人有这方面的经验?
我知道您可以将 IBOutlet 添加到 NSLayoutConstraints (以获取对它们的引用),然后在运行时删除它们。这似乎比应该做的工作更多。我错过了什么吗?