UITableView更改单元格样式

时间:2014-02-06 16:39:28

标签: ios objective-c uitableview

我有2个表视图我想根据第一个表视图中的选定行自定义第二个视图的单元格样式。它在定制配件时起作用但不适合风格。我正在使用iOS 7.1和Xcode 5.1 因为我使用以下代码

提前致谢

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     static NSString *TableIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableIdentifier];
    }

    cell.detailTextLabel.textColor = [UIColor lightGrayColor];
    cell.textLabel.text = [array objectAtIndex:indexPath.row];

    if ([selectedRow isEqualToString:@"Cars"]) {
        [cell setAccessoryType: UITableViewCellAccessoryDetailButton];

    }
    if ([selectedRow isEqualToString:@"Houses"]) {
       NSArray *temp = [[dic objectForKey:selectedRow]valueForKey:@"Job"];

        cell.selectionStyle = UITableViewCellStyleSubtitle;
        cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
        cell.detailTextLabel.text = [temp objectAtIndex:indexPath.row];             
    }
    if ([selectedRow isEqualToString:@"Libraries"]) {
        cell.selectionStyle = UITableViewCellStyleValue1;
    }

    return cell;
}

1 个答案:

答案 0 :(得分:2)

如果不创建新单元格,则无法更改单元格的样式。

该行:

cell.selectionStyle = UITableViewCellStyleValue1;

毫无意义。您试图通过传入单元格样式的枚举值来更改单元格的选择样式。这是两个不同的概念。

如果要更新单元格的样式(而不是选择样式),则需要再次调用UITableView initWithStyle:reuseIdentifier:传递所需的样式。