iOS UIベースコントロールのUIVE詳細

4966 ワード

UIViewの概要


UIViewとは

UIViewはウィンドウ上の であり、iOSのすべてのコントロールの であり、私たちがappで見ることができるものはすべて直接または間接的にUIViewに継承されている.私たちはUIView と呼んでいます.

UIViewの役割

  • 内部領域のコンテンツレンダリングを担当します.
  • 内部領域のタッチイベントを担当する.
  • すべてのサブビューを管理します.
  • 基本的なアニメーションを処理します.

  • UIViewの作成と使用


    UIViewの作成

        // frame View
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
    
        // 
        [self.window addSubview:view];
    

    ビューは領域であるため、UIViewを作成すると同時に を設定する必要があり、frameは位置とサイズを含む 体である.

    UIViewの基本プロパティ

        // 
        view.backgroundColor = [UIColor redColor];
    
        // 
        view.frame = CGRectMake(200, 100, 200, 200);
    
        // [0.0, 1.0]
        view.alpha = 0.5;
    
        // 
        view.hidden = NO;
    
        // 
        view.tag = 100;
    
        // 
        view.center = self.window.center;
    

    注意:ここでは特にframeと言います.彼はUIViewの非常に重要な属性で、UIViewの大きさと位置を決定しました.frameで設定されている位置は、UIViewの 座標系を基準としており、特に注意が必要なのは frame , frame

    サブビュー管理

  • NSArray *subviews
  • すべてのサブビューを管理(コントロール)
  • 配列要素の順序は、サブコントロールの表示レベルの順序を決定する(下付き文字が大きいほど上に表示される)
  • すべてのサブビューの管理はsubviews配列の管理

  • ビューの追加

        UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
        view2.backgroundColor = [UIColor greenColor];
        view2.tag = 200;
    
        // view2 view 
        [view addSubview:view2];

    上記コードで追加すると、view2viewのサブビューであり、viewview2の親ビューである.すべてのビュー間に階層レベルの関係があり、後に追加されたビューほど上に表示され、前に追加されたビューは下に表示されます.

    ビューの挿入

        // yView view , 0 
        // , 
        // [0, )
        [view insertSubview:yView atIndex:0];
    
        // oView view view2 
        [view insertSubview:oView belowSubview:view2];
    
        // View view , yView 
        [view insertSubview:rView aboveSubview:yView];
    

    ビューの削除


    UIDIewにおけるサブビューの管理は配列による要素の管理とは異なり、 を削除することはできず、 で親ビューから自分を削除することしかできない.
        //view2 
        [view2 removeFromSuperview];
    

    ビューの取得


    ビューには名前はありませんが、 を持っているので、ビュー内の を取得するには、サブビューのIDで取得できます.方法は次のとおりです.
        // view 200 
        UIView *subView = [view viewWithTag:200];
    

    ビューの表示レベルの変更

        // , 
        [view bringSubviewToFront:yView];
    
        // ,  
        [view sendSubviewToBack:view2];
    

    この文書のリンク:http://www.jianshu.com/p/1f28240babd0