iOS開發 螢幕適配之VFL語言

2021-07-16 15:32:28 字數 2065 閱讀 5492

1、簡介

vfl語言是蘋果給了簡化螢幕適配的工作量推出的一門語言,以不同的方向進行新增約束的

vfl比純**更加的巨集觀,它在新增約束的同時考慮不同控制項之間的關係,純**是每個控制項單獨新增約束

2、核心

v 垂直方向  

h 水平方向

- 控制項之間的間距 如-20-代表間距為20

具體控制項 如[view]代表控制項view,[view(40)],代表寬度或高度為40

| 父控制項的邊緣

3、**演示

需求

1 黃色控制項

+ 橙色控制項

2 高度均為

40,黃色在做左,橙色在右

3 兩控制項之間的水平間距為20

4 兩控制項距離螢幕底部間距均為20

5 黃色控制項距離螢幕左側間距為

20,橙色控制項距離螢幕右側間距為

20

關鍵**

uiview *yellow = [[uiview alloc] init];

yellow.backgroundcolor = [uicolor yellowcolor];

[self.view addsubview:yellow];

uiview *orange = [[uiview alloc] init];

orange.backgroundcolor = [uicolor orangecolor];

[self.view addsubview:orange];

yellow.translatesautoresizingmaskintoconstraints = no;

orange.translatesautoresizingmaskintoconstraints = no;

// constraintswithvisualformat:具體約束

// options:約束的方式

// metrics:佔位

// 以鍵值對的形式說明對應的控制項

// 1* @];

// 2* nsdictionaryofvariablebindings(yellow, orange);

nsdictionary *metrics = @;

nsdictionary *views = nsdictionaryofvariablebindings(yellow, orange);

nsarray *cons3 = [nslayoutconstraint constraintswithvisualformat:@"h:|-margin-[yellow]-margin-[orange(==yellow)]-margin-|"

options:nslayoutformatalignalltop | nslayoutformatalignallbottom

metrics:metrics

views:views];

[self.view addconstraints:cons3];

nsarray *cons4 = [nslayoutconstraint constraintswithvisualformat:@"v:[yellow(==yellowheight)]-margin-|" options:0 metrics:@ views:views];

[self.view addconstraints:cons4];

4、總結

4.1 vfl語言簡化的程式設計的工作量,比起**更加的巨集觀

4.2 vfl語言的格式串,如果寫錯乙個地方就會出現問題,哪怕是少寫了一條橫線

4.3  個人建議,如果比較熟練,可以使用純**的方式,因為純**更加的精細化,容易查錯和考慮,因為平鋪適配無非就考慮位置和寬高

4.4 以後會講解更加簡便的螢幕適配方法,如masonry這個庫的使用

IOS開發之自動布局 VFL語言

前言 vfl是蘋果公司為了簡化autolayout的編碼而推出的抽象語言。對於純 發燒友,值得我們去學習和了解哦。1 什麼是vfl語言 vfl全稱是visual format language,翻譯過來是 視覺化格式語言 2 vfl使用示例 h cancelbutton 72 12 acceptbu...

iOS螢幕螢幕適配之 Auto Layout 1

在iphone4s及其之前的iphone,螢幕尺寸一直是固定的3.5英吋,硬體解析度為320 480。那時候不存在螢幕適配的問題 當然排除同時相容ipad和iphone 直接用比較粗暴的方式把乙個view的位置寫死,比如下面的 void viewdidload產生的效果如下 從中可以看到,建立nsl...

iOS學習之VFL語言簡介

vfl visual format language 視覺化格式語言 vfl是蘋果公司為了簡化autolayout的編碼而推出的抽象語言。cancelbutton寬72,acceptbutton寬50,它們之間間距12 h wideview 60 700 wideview寬度大於等於60point,...