私はscrollViewにたくさんの画像を持っていますが、すべて同じで、次々に、そしてそれぞれのサブビューとして削除ボタンがあります。このようにタグを割り当てます
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 によると、最初の 4 つのボタンは、そのタグと画像タグに正確に対応しています。対応する画像が削除されます。これらの 4 つの画像はすべて、スクロール ビューの最初のビューに収まります。ただし、さらに画像があり、下にスクロールする必要がある場合、タグはそれ以上増加しません。代わりに、タグ 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];
}
}
}
しかし、同じ結果が得られます