如何在iOS应用程序中单击新单元格时隐藏先前的CellImage

时间:2013-07-09 06:13:41

标签: ios ipad uitableview

我在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];
}

我在单元格中使用自定义单元格

的按钮上调用此方法

here is the screen shot of the image

4 个答案:

答案 0 :(得分:0)

表视图xib上有一个名为selection的值,检查它的值是否在xib中设置为单选。或者以编程方式将此属性设置为NO:

@property(nonatomic) BOOL allowsMultipleSelection

答案 1 :(得分:0)

在您的按钮操作中,您可以设置维护应在.h文件中声明的 previousIndexPath 。通过使用此previousIndexPath,您可以轻松隐藏先前加载的图像:

      CustomCell *cell=(CustomCell *)[yourTable cellForRowAtIndexPath:previousIndexPath];
      cell.yourImage.hidden=TRUE;

答案 2 :(得分:0)

在tableView中更改先前所选单元格的隐藏值属性:didSelectRowAtIndexPath: 使用以下方法访问单元格:

UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:previousIndex];
cell.yourImage.hidden = YES;

答案 3 :(得分: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];
}

或者你甚至可以使用块来循环子视图并隐藏它们

干杯