0

カスタムセルを作成し、uibutton を追加しました。そのボタンをタップすると、そのボタンを選択してボタンの画像を変更するように設定します。

-(IBAction)btnInfoPressed:(id)sender
{
    [btnInfo setSelected:YES];
}

上記のメソッドは、カスタム セル クラスにあります。下にスクロールすると、いくつかのセルの後、そのボタンをタップしていなくても、他のセルのボタンも選択されます。

これが私の cellforrowatindexpath メソッドです:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CustomCell";
CustomCell *c = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (c == nil)
{
    c = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0];
}
c.selectionStyle = UITableViewCellSelectionStyleNone;
return c;
}

それについて何をする必要があるかについてのアイデアはありますか?

4

1 に答える 1

3

(上記のコメントから:) セルは再利用されるため、セルを使用して行の状態を保存することはできません。テーブル ビューは、限られた数のセルのみを割り当てます。下にスクロールすると、非表示dequeueReusableCellWithIdentifierになった既存のセルの 1 つが返されます。したがって、行の状態をデータ ソースに格納し、セルの完全な状態 (ボタンの状態を含む) を で更新する必要がありますcellForRowAtIndexPath

于 2013-07-07T13:23:45.577 に答える