我有一个UIView
有两个子元素的a:UIScrollView
上半部分(包含两个UILabel
s)和UITableView
底部的a。这基本上是一个字典,滚动视图的目的是显示单词和定义,以及显示相关单词的表格视图。并非字典中的所有单词都有与之关联的相关单词数组,因此我隐藏了UITableView
该数组为空的情况。
但是,当隐藏时,我无法UIScrollView
填充整个父视图。UITableView
这是我到目前为止所尝试的:
- (void)updateUIWithWord:(NSString *)theWord
andDefinition:(NSString *)theDefinition
andRelatedWordsArray:(NSArray *)theRelatedWordsArray {
self.navigationItem.title = theWord;
self.word.text = theWord;
self.definition.text = theDefinition;
self.relatedWordsArray = theRelatedWordsArray;
if (![relatedWordsArray count]) {
relatedWordsTableView.hidden = YES;
// set the UITableView's width and height to 0 just to be sure
// I feel this isn't needed though
CGRect relatedWordsTableViewFrame;
relatedWordsTableViewFrame.size = CGSizeMake(0, 0);
relatedWordsTableView.frame = relatedWordsTableViewFrame;
// then make the scroll view occupy the remaining height;
// that is, the self.view's actual height
CGRect scrollViewFrame;
scrollViewFrame.origin = CGPointMake(0, 0);
scrollViewFrame.size = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height);
scrollView.frame = scrollViewFrame;
}
}
简单地说,这是行不通的。对于任何没有相关词且定义很长的词,滚动视图仅占据相同的高度,即使表格视图消失。帮助?
添加:我尝试修复 中的约束UIScrollView
以使其相对于顶部UITableView
而不是具有固定高度,但这似乎是不可能的。