使用多个不同的自定义单元格创建复杂的UITableView

时间:2012-10-28 20:21:14

标签: ios ios5 uitableview

我在表视图中创建了一个具有自定义UITableViewCell的侧边菜单。

我创建了一个可重复使用的单元格,用于以下内容:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
LeftMenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {

    NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"LeftMenuTableViewCell" owner:nil options:nil];

    for (UIView *view in views) {
        if([view isKindOfClass:[UITableViewCell class]])
        {
            cell = (LeftMenuTableViewCell*)view;
            [cell.displayName setText:[NSString stringWithFormat:@"Cell 1"];

        }
    }
}

return cell;

}

我想知道如何为此表创建其他单元格。该表将类似于Facebook / Path侧菜单。例如 我的简历 设置 救命 注销

虽然标签和旁边的图标有不同的文字,但每个都有相同的设计。还会在右侧加载不同的视图控制器。有人能解释一下这是如何实现的吗?或者提供任何教程的链接,该教程解释了使用多个不同的单元格创建自定义表格视图,我是否需要复制单元格.h,.m和NIB文件并单独创建每个自定义UITabelViewCell?

1 个答案:

答案 0 :(得分:0)

使用相同的单元格类并将其设置为(因为单元格没有设计更改,只有文本和图像正在更改),

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  //some code
  if () { //condition 1 
     cell.textLabel.text = @"My Profile";
     cell.imageView.image = [UIImage imageNamed:@"MyProfile.png"];
  } else if () { //condition 2
     cell.textLabel.text = @"Settings";
     cell.imageView.image = [UIImage imageNamed:@"Settings.png"];
  } else if () { //condition 3
     cell.textLabel.text = @"Logout";
     cell.imageView.image = [UIImage imageNamed:@"Logout.png"];
  } 
  //some code
}

didSelectRowAtIndexPath方法中,

if () { //condition 1, say indexpath.row == 0
  //go to firstviewcontroller
} else if () { //condition 2, say indexpath.row == 1
  //go to secondviewcontroller
} else if () { //condition 3, say indexpath.row == 2
  //go to thirdviewcontroller
}

这对你有用吗?