プロジェクションマッピング

エンターテインメントから工業利用まで、プロジェクションマッピングの活用・運用をお考えの方へ

more

インタラクティブ&サイネージ

情報表示用のデジタルサイネージから、センサーを利用したインタラクティブ要素などをお考えの方へ

more

VR/360MOVIE

VRHMD用コンテンツからプラットフォームを利用した360度ムービーを活用したPRをお考えの方へ

more
CONTACT 052-253-9866

【Xcode】addSubviewで生成したViewの重なり順を変更するには?

2014.03.27 木曜日 07:37:57

PPW_shinbasshiekimaenobiru_02

addSubviewで、プログラムから作成したView等の重なり順を指定したい場合があります。
例えば、常に表示させておきたいボタンがある場合がそれにあたると思います。

その場合はどうやって指定すれば良いのか、調べてみました。

1.重なり順の指定方法

以下のコードをaddSubviewした後に記述することにより、順序の入れ替えが行えます。

    // 重なり順を最前面に
    [self.view bringSubviewToFront:view_a];
    // 重なり順を最背面に
    [self.view sendSubviewToBack:view_b];

2.使用例

以下が使用例です。


    // UIViewを生成
    UIView *titleBg =[[UIView alloc] initWithFrame:CGRectMake(50,410,210,50)];
    titleBg.backgroundColor =  [UIColor colorWithWhite:0.5 alpha:0.5];
    [self.view addSubview:titleBg];

    // UILabelを生成    
    UILabel *titleLabel = [[UILabel alloc] init];
    titleLabel.frame = CGRectMake(5, 420, (self.view.bounds.size.width-20), 25);
    titleLabel.text = @"このテキストを背面へ";
    titleLabel.textAlignment = UITextAlignmentCenter;
    titleLabel.textColor = [UIColor whiteColor];
    titleLabel.font = [UIFont boldSystemFontOfSize:20];
    [self.view addSubview:titleLabel];
    
    // Labelを背面へ移動
    [self.view sendSubviewToBack:titleLabel];

以上で完了です!
今回の例だと、UILabelは後から生成されているので、通常ならUIViewの上に重なりますが、
最後のsendSubviewToBackにより、UILabelはUIViewの下に重なるようになります。

これで常時表示させておきたいオブジェクトがある場合でも対応できますね!

今回参考にさせて頂いたサイトはこちらです。ありがとうございました!
Category:Development , Xcode     Tag:
Authorブログの著者について
田中 義弘

田中 義弘

イベントプロダクション・グラフィックデザイナーを経て、2010年3月に株式会社アイデアクラウドを設立。近年、WEBから得た技術をベースに、プロジェクションマッピング事業をはじめとした先端事業をスタート。

Our Business
最近の記事
人気記事
Our Project