Swift學(xué)習(xí):VFL約束語言的學(xué)習(xí)

繼續(xù)學(xué)習(xí)AutoLayout的約束诡壁,發(fā)現(xiàn)約束不止可以使用這樣的寫法

NSLayoutConstraint(item: <Any>, attribute: <NSLayoutAttribute>, relatedBy: <NSLayoutRelation>, toItem: <Any?>, attribute: <NSLayoutAttribute>, multiplier: <CGFloat>, constant: <CGFloat>)

還可以使用VFL的語言

雖然看起來難冒掌,不過明白后反而會覺得還是非常好用的!

VFL(Visual Format Language)

首先:swift中的API

NSLayoutConstraint.constraints(withVisualFormat: <String>, options: <NSLayoutFormatOptions>, metrics: <[String : Any]?>, views: <[String : Any]>)

**
* withVisualFormat:VFl語句
* options:對齊方式
* metrics:傳入一個字典 因宇,VFL中的key對應(yīng)的值
* views:傳入一個字典晃琳,VFL中key對應(yīng)的View
**
舉個栗子??
let buttonConstraintV = NSLayoutConstraint.constraints(withVisualFormat: "V:|-100-[button(30)]", options: .directionMask, metrics: nil, views: ["button":alertTestButton])
alertTestButton.superview?.addConstraints(buttonConstraintV)

let buttonConstraintH = NSLayoutConstraint.constraints(withVisualFormat: "H:|-100-[button]-100-|", options: .directionMask, metrics: nil, views: ["button":alertTestButton])
alertTestButton.superview?.addConstraints(buttonConstraintH)

let buttonConstraintH = NSLayoutConstraint.constraints(withVisualFormat: "H:|-m-[button]-m-|", options: .directionMask, metrics: ["m":100], views: ["button":alertTestButton])
alertTestButton.superview?.addConstraints(buttonConstraintH)

V:代表垂直方向
H:代表水平方向

|: 表示父View的邊界
-: 表示間隔
|-10-[button] :表示button距離邊界為10

V:|-100-[button(30)] :表示垂直方向上button距離上方邊界的距離為100 撬即, button的高度為30

V:|-100-[button(text)] :表示垂直方向上button距離上方邊界的距離為100 痊剖, button的高度 與text等高

H:|-100-[button]-100-|:表示水平方向上button距離左邊界100,距離右邊界100

H:|-m-[button]-m-|:表示水平方向上button距離左邊界m枪蘑,距離右邊界m(可以用來動態(tài)改變值)

H:[button1][button2]:表示水平方向上button1后面緊跟button2
H:[button1]-10-[button2]:表示水平方向上button1距離為10后面跟著button2

m值以[key:value]字典的方式設(shè)為metrics參數(shù)(數(shù)值)
button值[key:value]字典的方式設(shè)為views參數(shù)(view)

VFL雖然很好用但是有些比較復(fù)雜的布局貌似還是得用之前學(xué)過的
Swift學(xué)習(xí):約束的基本使用 來完成

嗯 大概就是這樣损谦,如果發(fā)現(xiàn)錯誤或者有什么問題還請留言指出,大家共同學(xué)習(xí)進步岳颇,謝謝??
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末照捡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子话侧,更是在濱河造成了極大的恐慌栗精,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞻鹏,死亡現(xiàn)場離奇詭異悲立,居然都是意外死亡,警方通過查閱死者的電腦和手機新博,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門薪夕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赫悄,你說我怎么就攤上這事原献×罂” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵姑隅,是天一觀的道長熏纯。 經(jīng)常有香客問我,道長粤策,這世上最難降的妖魔是什么樟澜? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮叮盘,結(jié)果婚禮上秩贰,老公的妹妹穿的比我還像新娘。我一直安慰自己柔吼,他們只是感情好毒费,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著愈魏,像睡著了一般觅玻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上培漏,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天溪厘,我揣著相機與錄音,去河邊找鬼牌柄。 笑死畸悬,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的珊佣。 我是一名探鬼主播蹋宦,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咒锻!你這毒婦竟也來了冷冗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤惑艇,失蹤者是張志新(化名)和其女友劉穎蒿辙,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敦捧,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡须板,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了兢卵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡绪颖,死狀恐怖秽荤,靈堂內(nèi)的尸體忽然破棺而出甜奄,到底是詐尸還是另有隱情,我是刑警寧澤窃款,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布课兄,位于F島的核電站,受9級特大地震影響晨继,放射性物質(zhì)發(fā)生泄漏烟阐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一紊扬、第九天 我趴在偏房一處隱蔽的房頂上張望蜒茄。 院中可真熱鬧,春花似錦餐屎、人聲如沸檀葛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屿聋。三九已至,卻和暖如春藏鹊,著一層夾襖步出監(jiān)牢的瞬間润讥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工盘寡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留象对,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓宴抚,卻偏偏與公主長得像勒魔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子菇曲,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Visual Format Language (VFL)使開發(fā)者能憑借字符串描述冠绢,以比較簡潔的方式布局iOS頁面;...
    默芥子閱讀 1,288評論 0 0
  • 由于iOS運行在不同設(shè)備之上常潮,因而作為代碼搬運工的我們經(jīng)常需要對不同的屏幕尺寸進行適配弟胀。我們常用的方法有NSLay...
    青余閱讀 389評論 0 0
  • 我想去海邊看一看沙漠 我想去海底爬一爬高山 我想在海中抓一只飛鳥 我想在海面騎上筋斗云 我想我一定會融化在海洋里 ...
    杜洛克閱讀 231評論 0 0
  • 哈哈哈哈哈
    libra99閱讀 135評論 0 0
  • 在地鐵上,打開微信喊式,看到一同事在微信群里談到注冊頁面優(yōu)化的問題孵户,恰巧我前幾天早上在互聯(lián)網(wǎng)er早讀課上看到的一篇關(guān)于...
    Hoogle閱讀 856評論 6 5