我有一个UIScrollView,我想在其中包含许多UITableViews,每个都是一个页面。我已将它们添加到滚动视图中,并验证UITableViews的帧是否已正确设置。第一个UITableView正确显示,但它不会让我水平滚动以查看其他UITableView。这是我在表格视图中使用的代码:
scrollView.delegate=self;
scrollView.scrollEnabled=YES;
tableViews = [[NSMutableArray alloc] initWithCapacity:recipOrgs.count];
for (NSDictionary *orgDict in recipOrgs) {
int index = [recipOrgs indexOfObject:orgDict];
NSLog(@"Creating table view for index: %d",index);
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * index;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
OrganizationTableView *tableView = [[OrganizationTableView alloc] init];
tableView.index=index;
tableView.parentCon=self;
tableView.dataSource=tableView;
tableView.delegate=tableView;
[tableViews addObject:tableView];
[scrollView addSubview:tableView];
[tableView setFrame:frame];
}
为什么这不起作用的任何想法?正如我所提到的,我检查了UITableView起源的x值,我得到0,320,640等,就像我期望的那样。
答案 0 :(得分:1)
您可能忘记为contentSize
设置scrollView
。
scollView.contentSize = CGSizeMake(recipOrgs * CGRectGetWidth(scrollView.frame), CGRectGetHeight(scrollView.frame));
但您应该考虑使用UICollectionView
代替UIScrollView
,然后免费获得重用逻辑,您不必担心contentSize
。