IOS開發之自動布局--VFL語言


前言:VFL是蘋果公司為了簡化Autolayout的編碼而推出的抽象語言。對於純代碼發燒友,值得我們去學習和了解哦。

 

 

1、什么是VFL語言

  VFL全稱是Visual Format Language,翻譯過來是“可視化格式語言”。

  

2、VFL使用示例:

  H:[cancelButton(72)]-12-[acceptButton(50)]
  canelButton寬72,acceptButton寬50,它們之間間距12

  H:[wideView(>=60@700)]
  wideView寬度大於等於60point,該約束條件優先級為700(優先級最大值為1000,優先級越高的約束越先被滿足)

  V:[redBox][yellowBox(==redBox)]
  豎直方向上,先有一個redBox,其下方緊接一個高度等於redBox高度的yellowBox

  H:|-10-[Find]-[FindNext]-[FindField(>=20)]-|
  水平方向上,Find距離父view左邊緣默認間隔寬度,之后是FindNext距離Find間隔默認寬度;

  再之后是寬度不小於20的FindField,它和FindNext以及父view右邊緣的間距都是默認寬度。(豎線“|” 表示superview的邊緣)

3、VFL的使用:

  使用VFL來創建約束數組
    + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views;
      format :VFL語句
      opts :約束類型
      metrics :VFL語句中用到的具體數值
      views :VFL語句中用到的控件

  創建一個字典(內部包含VFL語句中用到的控件)的快捷宏定義
    NSDictionaryOfVariableBindings(...)
    關於這個的使用下面展示個示例:

    

 

4、VFL的代碼練習示例:

  需求:我們需要實現以下的效果。

    在控制器view底部添加2個view,1個藍色,1個紅色
    2個view寬度、高度永遠相等,高度等於50
    距離父控件左邊、右邊、下邊間距和2個view之間的間距相等,等於30

    

  代碼實現:

    

    源碼百度雲下載鏈接: http://pan.baidu.com/s/1eS13VAa 密碼: qf1u

  展示效果(直接旋轉為橫屏):

    

  注意編碼的事項:

    

    

 轉載注明出處:http://www.cnblogs.com/goodboy-heyang/p/5359857.html ,尊重勞動成果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM