UIViewクラスのaddSubviewとinsertSubviewの違い


回答:


103

唯一の違いは、ビューが追加される場所です。最前面のビュー(addSubview:)であるか、5番目のサブビューの前であるinsertSubview:atIndex:か()であるか、別のサブビューのすぐ後ろであるか(insertSubview:aboveSubview:)です。


46

を使用しinsertSubView:て、ビューのzオーダーを決定するインデックスを指定できます。インデックスが高いビューは、インデックスが低いビューの上にあります。


おかげで、私はこれら2つの機能の使用法に特定の違いがあることを望んでいました
Ashwani K

1
私の答えで説明した特定の違いを除いて、何もありません。
Nikolai Ruhe

29

違いはないと思います。addSubview:シンプルで便利な方法です

[view insertSubview:aView atIndex:[view.subviews count]]

0

1.addSubview配列にサブビューを追加してから、ビューのレイヤーに追加します

- (void)addSubview:(UIView *)subview
{
    [_subviews addObject:subview];
    [_layer addSublayer:subview.layer];
}

}

2. insertSubviewがビューをサブビューとして追加している間に、 [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.