0

我在一个滚动视图中有很多图像,都是一样的,一个接一个,一个删除按钮作为每个的子视图。我以这种方式分配标签

1) img.tag = i; 

2) int z;
        z = i+1;
     buttonDelete.tag = z;

i 是一个 for 循环。当我按下按钮时,将执行此代码:

-(IBAction)deleteMessage:(id)sender
{
    UIButton *button = (UIButton*) sender;
    NSLog(@"Clicked button %d", button.tag); 

    UIImageView *image = (UIImageView*) sender;
    NSLog(@"Clicked button %d", image.tag);

    int n;
    n = button.tag;

    for (UIImageView *img in imageArray)
    {
        if (img.tag == n)
        {
            [img removeFromSuperview];

            NSLog(@"The value of integer num is %i", img.tag);
            NSLog(@"The value of integer num is %i", n);
        }
    }
}

根据 NSLog,前四个按钮与它们的标签和图像标签完全对应。相应的图像被删除。这四个图像都适合滚动视图的第一个视图。如果有更多图像,并且我需要向下滚动,则标签不再增加。相反,它们从标签 1 重新开始。因此 1,2,3,4,1,2,3,4... 和 1,2,3,4 可以在滚动视图的同一“页面”中看到。怎么会这样??

编辑:

我也试过这个:

-(IBAction)deleteMessage:(id)sender
{
    UIButton *button = (UIButton*) sender;
    NSLog(@"Clicked button %d", button.tag); 

    UIImageView *image = (UIImageView*) sender;
    NSLog(@"Clicked button %d", image.tag);

    int n;
    n = button.tag;

    for (UIImageView *img in imageArray)
    {
        if ([img isKindOfClass:[UIImageView class]] && img.tag == n) {

            [img removeFromSuperview];
        }
    }
}

但给出相同的结果

4

0 回答 0