2

iOS 7 を使用してビューからすべてのボタンを削除するにはどうすればよいですか?

以前のバージョンの iOS で動作するコードは次のとおりです。

                for(UIView *view in cell.subviews){
                    if([view isMemberOfClass:[UIButton class]]){
                        [(UIButton *)view removeFromSuperview];
                    }
                }
4

4 に答える 4

6

まず、ビューからすべてのサブビューを取得してから、すべてのビューが UIButton のタイプであることを確認する必要があります。詳細については、これを参照してください...

for (UIView *view in self.view.subviews)
    {
        if ([view isMemberOfClass:[UIButton class]])
        {
            [(UIButton *)view removeFromSuperview];
        }
    }
于 2013-10-02T05:04:47.547 に答える
4

サブビューをループしていないようです。これがView Controllerであると仮定します:

NSArray * allSubviews = [self.view subviews];
for(UIView view in allSubviews)
{
    if([view isMemberOfClass:[UIButton class]])
    {                                     
        [view removeFromSuperview];                                 
    }
}

viewまた、" " を " "にキャストする必要もありません。これは、" "UIButton *の基底クラスが " UIView" を実装するためremoveFromSuperviewです。

于 2013-10-02T05:04:26.163 に答える
2

返事が遅れて申し訳ありません。実際には、コードのこの部分は iOS 6.0 までは機能しますが、iOS 7.0 以降ではコードは機能しません。

UIScrollview最後に、次のステートメントですべてのサブビューを削除する解決策を見つけました。

[scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)].
于 2014-08-04T05:55:00.467 に答える
0

試してみてください、これはうまくいきます

for(UIView *view in self.view.subviews) 
{
    if ([view isKindOfClass:[UIButton class]])
    {
        [view  removeFromSuperview];
    }
}
于 2013-10-02T05:15:59.587 に答える