У меня есть UIView
, который имеет два дочерних элемента: a UIScrollView
в верхней половине (который содержит два UILabel
s) и UITableView
внизу. Это в основном словарь, и цель представления прокрутки - отображать слово и определение, а также представление таблицы для отображения связанных слов. Не все слова в моем словаре имеют связанный с ними связанный массив слов, поэтому я скрываю UITableView
, когда этот массив пуст.Как заставить UIScrollView занимать высоту экрана, когда 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;
}
}
Проще говоря, это не работает. Для любого слова, которое не имеет связанных слов и очень длинного определения, вид прокрутки просто занимает такое же количество высоты, даже если стол не исчез. Помогите?
ADD: Я попытался фиксируя ограничения в UIScrollView
, чтобы сделать его по отношению к верхней части UITableView
вместо того, фиксированную высоту, но это не представляется возможным.
Вы уверены, что все «IBOutlet's» связаны? – tia
Yup, все IBOutlets подключены правильно. –