2

ビューのメインレイヤーから最も深いサブレイヤーを削除する方法は何でしょうか?かなり単純なはずですが、私はiOSを初めて使用します。

4

2 に答える 2

6

本当に後ろのレイヤー(ビューではない)を意味する場合は、これも試すことができます:

[[view.layer.sublayers objectAtIndex:0] removeFromSuperlayer];

代わりに背面図を削除したい場合は、同様のものを使用できます。

[[view.subviews objectAtIndex:0] removeFromSuperview];

もちろん、子ビューのものを含め、最も深いサブレイヤー/サブビューを本当に削除したい場合は、次のようなことを行う必要があります。

CALayer *layer = view.layer;
while ([layer.sublayers count] > 0) {
    layer = [layer.sublayers objectAtIndex:0];
}
[layer removeFromSuperlayer];

それでも、それは悪い考えのようです。あなたが本当にそれを探しているなら、私はあなたが実際に探しているものを再考することをお勧めします。

于 2013-02-12T04:07:08.583 に答える
3

一番後ろのサブビューを意味する場合は、次を使用します。

UIView *subViewToBeRemoved = [mainView.subviews objectAtIndex:0];
[subViewToBeRemoved removeFromSuperview]; 

mainView.subviewsは、ビューのサブビューの配列を画面に表示されている順序で返します。

最深部とは、使用できる最前面のビューを意味する場合

UIView *subViewToBeRemoved = [mainView.subviews lastObject];
[subViewToBeRemoved removeFromSuperview]; 
于 2013-02-12T04:01:16.120 に答える