まず、私がすべての提案を試したと言うとき、私を信じてください。しかし、私はそれらを再試行するつもりですので、コメント/回答してください。現在、私のコードは次のようになっています。
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
CGRect frame = CGRectMake(tblView.frame.origin.x, tblView.frame.origin.y, tblView.frame.size.width, tblView.contentSize.height);
[tblView setFrame:frame];
[tblView reloadData];
CGRect contentRect = CGRectZero;
for (UIView *view in scrollView.subviews)
contentRect = CGRectUnion(contentRect, view.frame);
[scrollView setContentSize:contentRect.size];
scrollView.frame = CGRectMake(scrollView.frame.origin.x, scrollView.frame.origin.y, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);
}
私の@interfaceは:
@interface VH_HotelsListViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> {
IBOutlet UIScrollView *scrollView;
IBOutlet UIImageView *imageView;
IBOutlet UITableView *tblView;
NSMutableArray *hotelArray;
}
ストーリーボードのテーブルビューを上のtblViewに関連付けました。テーブルビューは実行時にデータベースから入力されるので、問題はありません。
上からわかるように、テーブルビューのコンテンツサイズを取得し、フレームを同じ高さに調整しようとしています。ただし、スクロールビューのサイズがその高さに変更されるため、コンテンツサイズを正確に取得しています。残念ながら、テーブルビューには何もしません。設定NSLog(@"Table View Height: %g", tblView.frame.size.height)
した直後はコンテンツサイズと同じ数になりますがTable View Height: 3166
。つまり、機能しているように見えますが、実際には拡張されていません。