1. ホーム
  2. アイオス

[解決済み】iPhoneのUIViewのzインデックスを設定する方法は?

2022-04-20 08:08:50

質問

あるビューを別のビューの上に移動させたいのですが、ビューのzインデックスと、上に移動する方法を知るにはどうしたらいいですか?

どのように解決するのですか?

UIView 兄弟姉妹は、そのスーパービューに追加された順番にスタックされます。そのため UIView 階層のメソッドとプロパティは、ビューの順序を管理するために存在します。UIView.hでは

@property(nonatomic,readonly) UIView *superview;
@property(nonatomic,readonly,copy) NSArray *subviews;

- (void)removeFromSuperview;
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

- (void)addSubview:(UIView *)view;
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;

- (void)bringSubviewToFront:(UIView *)view;
- (void)sendSubviewToBack:(UIView *)view;

兄弟関係のあるビューは subviews の配列になります。つまり、一番上のビューがそうなります。

[parentView.subviews lastObject];

とボトムビューになります。

[parentView.subviews objectAtIndex:0];

Kolin Krewinkelが言ったように。 [parentView bringSubviewToFront:view] はビューを一番上に持ってきますが、これはビューがすべて階層で兄弟である場合のみです。