2

5つの単一のグループ化されたセルを持つUITableViewがあり、ユーザーは各オプションから特定の追加画面にアクセスできます。その後、ユーザーはこの画面に戻り、最後に選択したセルにチェックマークを付けて、以前のチェックマークをオフにできるようにします。

私はこれを達成しようとしてdidSelectRowAtIndexPath:いますが、正しく理解できないようです。

動的セルにはいくつかの答えがありますが、静的セルには何もありません。誰かがこれを手伝ってくれるでしょうか。

4

2 に答える 2

2

これを管理する方法はいくつかありますが、簡単な方法の1つは、セルへの参照をコレクションに格納して、すべてのセルにメッセージを簡単に送信できるようにすることです。たとえば、次のようなプロパティを追加できます。

@property(strong、nonatomic)IBOutletCollection(NSArray)* cells;

@property (strong, nonatomic) IBOutletCollection(UITableViewCell) NSArray *cells;

それをnibファイルまたはストーリーボードの各セルに接続します。(Interface Builderを使用していない場合は、を削除してIBOutletCollection、セルを作成する場所に自分で配列を入力します。)

次に、次のように選択を管理できます。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    for (UITableViewCell *currCell in self.cells)
    {
        currCell.accessoryType = UITableViewCellAccessoryNone;
    }

    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
    selectedCell.accessoryType = UITableViewCellAccessoryCheckmark;
}
于 2012-12-31T15:02:37.980 に答える
1

IBOutletCollection の正しい構文は次のとおりです。

@property (strong, nonatomic) IBOutletCollection(UITableview) NSArray *cells;
于 2014-05-31T09:46:39.137 に答える