1

私の問題はこれに似ています

ただし、詳細があるセルに対してのみ、DetailDisclosureButtonを使用してaccessoryViewを表示したいと思います。

私はいくつかのコードを書きましたが、それをどの方法で置くべきかわかりません。

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

else 
{
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}

totalcountとtotalcount2は、セルに詳細があるかどうかを示す2つの可変配列の数です。

質問がはっきりしない場合は質問してください、ありがとうございます。

4

4 に答える 4

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に等しい場合、すべてのセルが同じアクセサリタイプを持つように見えます。それはあなたが何ですか?そうでない場合は、ロジックを再考することをお勧めします。

于 2012-01-23T22:22:54.653 に答える
2

あなたがあなたをtableView:cellForRowAtIndexPath:設定している間、あなたはでそれをするべきですUITableViewCell

于 2012-01-23T22:15:51.090 に答える
1

tableView:cellForRowAtIndexPath:セルがデキューまたは初期化された後にこれを追加します

于 2012-01-23T22:17:54.153 に答える
0

このライブラリを使用できます。MSCellAccessoryを使用すると、UITableViewCellのaccessoryTypeで色を簡単にカスタマイズできます。iOS7と同じフラットデザインをサポートします。 https://github.com/bitmapdata/MSCellAccessory

于 2015-04-24T09:12:33.233 に答える