0

セルがクリックされたときにCellImageに画像を表示していますが、問題は、新しいセルが選択されたときに前のセルの画像も表示されることです。ユーザーが新しいセルを選択したときに、前のcellImageを非表示にする必要があります。

ここにコードがあります

-(IBAction)imageButtonAction:(id)sender{

CustomCell *cell = (CustomCell *) [[sender superview] superview];
UIButton *btn = (UIButton *)sender;
UIView *backimage = [[UIView alloc] initWithFrame:CGRectMake(300,0,312,105)];
backimage.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"popupj.png"]];
[backimage setUserInteractionEnabled:YES];
[cell addSubview:backimage];
}

カスタムセルを使用したセルにあるボタンでこのメソッドを呼び出しています

ここに画像のスクリーンショットがあります

4

4 に答える 4

0

ボタン アクションでは、.h ファイルで宣言する必要があるpreviousIndexPathを保持するように設定できます。この previousIndexPath を使用すると、以前に読み込まれた画像を簡単に非表示にすることができます。

      CustomCell *cell=(CustomCell *)[yourTable cellForRowAtIndexPath:previousIndexPath];
      cell.yourImage.hidden=TRUE;
于 2013-07-09T06:30:58.803 に答える
0

選択と呼ばれるテーブル ビュー xib に値があります。その値が xib で単一選択に設定されていることを確認してください。または、プログラムでこのプロパティを NO に設定します。

@property(nonatomic) BOOL allowsMultipleSelection
于 2013-07-09T06:25:02.033 に答える
0

tableView:didSelectRowAtIndexPath で前に選択したセルの隠し値プロパティを変更します。次を使用してセルにアクセスします。

UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:previousIndex];
cell.yourImage.hidden = YES;
于 2013-07-09T06:35:02.230 に答える
0

あなたはこれを試すかもしれません、それはあなたを助けるかもしれません.

-(IBAction)imageButtonAction:(id)sender{

    CustomCell *cell = (CustomCell *) [[sender superview] superview];
    UIButton *btn = (UIButton *)sender;
    for (UIView *subView in cell.contentView.subviews) {
        if([subView isKindOfClass:[UIView class]]){
            subView.hidden=YES;
        }
    }
    UIView *backimage = [[UIView alloc] initWithFrame:CGRectMake(300,0,312,105)];
    backimage.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"popupj.png"]];
    [backimage setUserInteractionEnabled:YES];
    [cell addSubview:backimage];
}

または、ブロックを使用して、サブビューをループして非表示にすることもできます

乾杯

于 2013-07-09T06:36:11.420 に答える