-1

次の方法を使用して、いくつかの UIView をビューに追加します。

[self.view addSubview:myStickerView]; // this line is called every time when I select a button from ScrollView.

だから、私はたくさん持つことができmyStickerViewますself.view

さて、この行を呼び出すと[myStickerView removeFromSuperview];、最後のmyStickerView.

すべての UIView ( ) を削除するにはどうすればよいmyStickerViewですか?

4

3 に答える 3

4

最も簡単な方法は次のようなものです。

for (UIView *view in self.view.subviews) {
    if ([view isKindOfClass:[MYStickerView class]) {
        [view removeFromSuperView];
    }
}

または、挿入されたすべてのステッカー ビューの参照を保存して、すべてのサブビューを通過しないようにすることもできます

于 2013-10-11T20:51:10.073 に答える
3

最も簡単な方法は、ステッカー ビューを追跡する NSMutableArray プロパティを持つことです。ビューにステッカー ビューを追加するときは、それを配列にも追加します。そうすれば、すべてのステッカー ビューを削除したいときに、このようなことができます。

-(void)removeStickerViews
{
    for(StickerView *stickerView in self.myStickerViewArray)
    {
        [stickerView doSomething];
        [stickerView removeFromSuperview];
    }
    [self.myStickerViewArray removeAllObjects];
}

-(void)addStickerView:(StickerView *)inStickerView
{
    [self.myStickerViewArray addObject:inStickerView];
    [self.view addSubview:inStickerView];
}
于 2013-10-11T20:50:02.863 に答える
0

配列で追跡するという考えは問題ありませんが、より洗練された [myArray makeObjectsPerformSelector:@selector(removeFromSuperview)] を使用して結果を達成することをお勧めします。

于 2013-10-12T03:02:45.383 に答える