在两种不同类型的UITableViewCells之间交替

时间:2014-06-17 18:53:29

标签: ios objective-c uitableview

场景=我有一个tableView,它将由一个数据阵列加载(来自互联网,所以我可以' t"硬编码"这个)。将有两个不同的tableView单元格,我想在两种类型之间交替进行。 " CELL A"右侧有文字,左侧有图片," CELL B"将在左侧显示文本,在右侧显示图片。下面我将说明所需的结果(并不意味着"代码"仅用于说明tableView中从单元格到单元格的交替)。

tableView =
[0]indexPath.row = "CELL A"
[1]indexPath.row = "CELL B"
[2]indexPath.row = "CELL A"
[3]indexPath.row = "CELL B"
[4]indexPath.row = "CELL A"
[5]indexPath.row = "CELL B"

问题=我不知道如何为两种不同类型的单元格dequeueForReuseIdentifier。

请求=任何人都可以帮助我使用此代码,或者至少指出我正确的方向,或者这是否可能?

谢谢你们!

2 个答案:

答案 0 :(得分:2)

实际上这很简单。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row % 2 == 0) {
        // setup and return table cell type A
    } else {
        // setup and return table cell type B
    }
}

答案 1 :(得分:1)

在你的故事板中,你应该有一个包含两个原型单元格的tableview(一个用于单元格A,另一个用于单元格B)。为每个单元格设置标识符(例如cellAIdentifiercellBIdentifier)。

您还必须为CellA和CellB创建UITableViewCell的子类。然后在原型单元格中创建用户界面,并将IBOutlets连接到UITableViewcell的子类。假设您使用名为label的IBOutlet和另一个名为imageView的IBOutlet。

之后,你可以使用rmaddy回答:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell * cell;
    if (indexPath.row % 2 == 0) {
        cell = [tableview dequeueReusableCellWithIdentifier:@"cellAIdentifier"];
    } else {
        cell = [tableview dequeueReusableCellWithIdentifier:@"cellBIdentifier"];
    }
    label.text = @"your text, which should be taken from your model".
    imageView.image = [UIImage imageNamed:@"yourImageName"];
    return cell;
}
祝你好运!