我有一个带有三个TableView的ViewController,如下图所示:
这是三个表视图的声明代码:
CGFloat x, y, w, h;
x = 10.0f;
y = 154.0f;
w = 220.0f;
h = 600.0f;
self.usersTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, w, h) style:UITableViewStylePlain];
self.usersTableView.delegate = self;
self.usersTableView.dataSource = self;
[self.view addSubview:self.usersTableView];
x = CGRectGetMaxX(self.usersTableView.frame) + 10.0f;
self.groupsTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, w, h) style:UITableViewStylePlain];
self.groupsTableView.delegate = self;
self.groupsTableView.dataSource = self;
[self.view addSubview:self.groupsTableView];
x = CGRectGetMaxX(self.groupsTableView.frame) + 10.0f;
self.officesTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, w, h) style:UITableViewStylePlain];
self.officesTableView.delegate = self;
self.officesTableView.dataSource = self;
[self.view addSubview:self.officesTableView];
第一个表具有不同的内容布局。我试图更改三个表的顺序,但第一个表总是显示错误的布局(为了隐私,我隐藏了行的内容)。
编辑
以下是数据源方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.usersTableView)
{
return self.usersDataSource.count;
}
else if (tableView == self.groupsTableView)
{
return self.groupsDataSource.count;
}
else if (tableView == self.officesTableView)
{
return self.officesDataSource.count;
}
return 0;
}
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == self.usersTableView)
{
static NSString *CellIdentifier = @"Cell_User";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.font = [UIFont systemFontOfSize:13.0f];
}
User * aUser = self.usersDataSource[indexPath.row];
cell.textLabel.text = aUser.Name;
return cell;
}
else if (tableView == self.groupsTableView)
{
static NSString *CellIdentifier = @"Cell_Group";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.font = [UIFont systemFontOfSize:13.0f];
}
Group * aGroup = self.groupsDataSource[indexPath.row];
cell.textLabel.text = aGroup.Name;
return cell;
}
else if (tableView == self.officesTableView)
{
static NSString *CellIdentifier = @"Cell_Office";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.font = [UIFont systemFontOfSize:13.0f];
}
Office * anOffice = self.officesDataSource[indexPath.row];
cell.textLabel.text = anOffice.Name;
return cell;
}
return nil;
}
非常感谢你。