iOS UiTableViewCell选择性单元格显示accessoryView

时间:2012-01-23 21:50:16

标签: ios uitableview accessoryview

我的问题与this类似:

但我想只为带有详细信息的单元格显示带有DetailDisclosureButton的accessoryView。

我已经写了一些代码,但我不知道用哪种方法。

if (totalcount == 0 && totalcount2 == 0)
{
    cell.accessoryType = UITableViewCellAccessoryNone;
}

else 
{
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}

totalcount和totalcount2是两个可变数组的计数,它告诉我单元格是否有详细信息。

请问我的问题是否不明确,谢谢。

4 个答案:

答案 0 :(得分:5)

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString* identifierString;

    if(totalCount == 0 && totalCount2 == 0) {
        identifierString = @"0";
    } else {
        identifierString = @"1";
    }

    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifierString];

    if(cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:YOUR_CELL_STYLE 
            reuseIdentifier:identifierString] autorelease];

        if ([identifierString intValue] == 0) {
            cell.accessoryType = UITableViewCellAccessoryNone;
        } else {
            cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
        }

        //do whatever setup you need to do
    }

    return cell;
}

虽然对我来说,似乎如果totalCount和totalCount2都等于0,那么所有单元格将具有相同的附件类型。这就是你的意思吗?如果没有,您可能想重新考虑您的逻辑。

答案 1 :(得分:2)

在设置tableView:cellForRowAtIndexPath:

时,您应该在UITableViewCell中执行此操作

答案 2 :(得分:1)

在单元格出列或初始化后将其添加到tableView:cellForRowAtIndexPath:

答案 3 :(得分:0)

您可以使用此库。使用MSCellAccessory,UITableViewCell的accessoryType可以轻松自定义颜色。支持平面设计与iOS7相同。  https://github.com/bitmapdata/MSCellAccessory