UIView
2つの子要素を持つaがUIScrollView
あります。aは上半分(2つUILabel
のsを含む)にあり、aUITableView
は下半分にあります。これは基本的に辞書であり、スクロールビューの目的は単語と定義を表示することであり、テーブルビューは関連する単語を表示することです。辞書のすべての単語に関連する単語配列が関連付けられているわけではないので、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
が、それは不可能のようです。