Autolayoutの3つの方法✨

1927 ワード

  • 版権声明:本文はブロガーのオリジナル文章であり、ブロガーの許可を得ずに転載してはならない.

  • コードを使用してAutolayoutを実装する方法1-純粋なコード
    コンストレイントの作成
    +(id)constraintWithItem:(id)view1
    attribute:(NSLayoutAttribute)attr1
    relatedBy:(NSLayoutRelation)relation
    toItem:(id)view2
    attribute:(NSLayoutAttribute)attr2
    multiplier:(CGFloat)multiplier
    constant:(CGFloat)c;
    
    * view1 :      
    * attr1 :     (      )
    * relation :          
    * view2 :     
    * attr2 :     (      )
    * multiplier :  
    * c :  
    
    

    コンストレイントの追加
    - (void)addConstraint:(NSLayoutConstraint *)constraint;
    - (void)addConstraints:(NSArray *)constraints;
    

    に注意
  • 親コントロールを持つ後にコンストレイント
  • を追加する必要があります.
  • Autoresizing機能をオフにする
  • self.view.translatesAutoresizingMaskIntoConstraints = NO;```
    
    
    ###      Autolayout   2 - VFL
    
    ######  VFL      
    
    ```swift
    + (NSArray *)constraintsWithVisualFormat:(NSString *)format
    options:(NSLayoutFormatOptions)opts
    metrics:(NSDictionary *)metrics
    views:(NSDictionary *)views;
    
    * format :VFL  
    * opts :   
    * metrics :VFL          
    * views :VFL        
    

    次のマクロを使用してviewsとmetricsパラメータを自動的に生成します.
    NSDictionaryOfVariableBindings(...)
    

    コードを使用してAutolayoutを実装する方法3-Masonry
    手順の使用
  • Masonryフォルダのすべてのソースコードをプロジェクトに追加
  • マクロを2つ追加し、メインヘッダファイル
  • にインポートする.
    //         ,    mas_  
    #define MAS_SHORTHAND
    //         ,equalTo    mas_equalTo
    #define MAS_SHORTHAND_GLOBALS
    //                   
    #import "Masonry.h"
    

    コンストレイントを追加する方法
    
    //             
     [view makeConstraints:^(MASConstraintMaker *make) {
    
     }];
    
    //                ,      
     [view remakeConstraints:^(MASConstraintMaker *make) {
    
     }];
    
     //                   
     [view updateConstraints:^(MASConstraintMaker *make) {
    
     }];```
    
    ######     
    
    ```swift
    1.  :width\height\size
    2.  :left\leading\right\trailing\top\bottom
    3.   :center\centerX\centerY
    4.  :edges```