我在一个滚动视图中有很多图像,都是一样的,一个接一个,一个删除按钮作为每个的子视图。我以这种方式分配标签
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];
}
}
}
但给出相同的结果