首先,当我说我尝试了所有建议时,请相信我。但是我愿意再次尝试,因此请随时发表评论/答案。目前,我的代码看起来像:
- (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
相同的数字。因此,这就像它在工作,但实际上并没有扩展它。
好吧,我没有答案,所以我已经更新了项目。我已经将UITableView
完全从我的故事板中取出,现在只用代码创建它:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
tblView = [[UITableView alloc] initWithFrame:CGRectMake(0, 150, 320, 500) style:UITableViewStyleGrouped];
tblView.dataSource = self;
tblView.delegate = self;
[scrollView addSubview:tblView];
}
然后在viewDidAppear
中:
- (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.frame = frame;
[tblView reloadData];
}
这似乎在起作用。