你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios 約束(一)

ios 約束(一)

編輯:IOS開發綜合

1、什麼是約束

約束就是一系列描繪IOS順序視圖規劃的規則。他們限定了視圖之間的關系,也限定了視圖的規劃方式。運用約束時。我們可以說“這些視圖在程度方向上必需對齊”,或是“此視圖必需依據另一個視圖來調整本身高度,以便與之相符”。約束向開發者提供了一套規劃言語,使得可以向視圖裡添加約束,並以此來描繪各視圖的空間關系。

IOS擔任經過一套約束滿足零碎來完成這些規劃需求。規則必需有意義。不能說某視圖既位於另一個視圖左側,又位於它的右側。運用約束時的一個難點就是如何保證規則之間總是協調分歧的。假設規則之間有抵觸,那麼開發者將收到明白的告訴。Xcode會提供詳盡的記載信息來解釋具有的錯誤狀況。

另一個難點在於規則要指定的足夠詳細才行。假如對界面施加的約束過少,那麼能夠會發生不契合預期的規劃,由於有很多規劃方案可供選擇。我們能夠會要求某視圖處在另一個視圖右側,但是假設不指定垂直方向上的規則,那麼零碎就能夠會把右側這個視圖排布在屏幕頂端,而把左側那個視圖排布在屏幕底端。

有了約束,就可以制造出不依賴於分辨率的使用順序了。關於一款針對4英寸的屏幕的iPhone而制造的使用順序,只需是基於約束的,那麼不必修正任何代碼,就可以直接運轉在5英寸的iPhone上。

關於需求停止本地化的順序來說,不要為每種界面言語都創立XIB,而是應該采用約束。基於約束的XIB可以運用多種界面言語。

開發者可以在IB中以可視化的方式來指定約束,也可以在順序源碼中以編程的方式來制造約束。

2、約束零碎所用的屬性

約束所用的詞匯十分無限,就是一些與幾何特征有關的屬性及關系。屬性是約束零碎中的“名詞”,用來描繪視圖對齊矩形裡的地位。稍後我們會詳細解釋對其矩形這一概念,而如今大家可以把它看作與視圖的框架嚴密相關的一個東西。關系是零碎裡“動詞”,用於在屬性之間停止比擬。

屬性稱號描繪的是物理特性。約束零碎提供了上面這幾個“名詞”,用來描繪視圖的相關屬性:

1、left、right、top、bottom——視圖對齊矩形的左、右、上、下邊界。他們辨別對應於視圖的最小X值、最大X值、最小Y值以及最大Y值。

2、leading及trailing——視圖對齊矩形的前邊沿及後邊沿。在從左至右的書寫零碎裡,前邊沿就是“左”,後邊沿就是“右”。

3、width與height——視圖對齊矩形的寬度和高度。

4、centerX與centerY——視圖對齊矩形的中心點x軸和y軸的坐標。

5、baseline——對齊矩形的基線,通常比bottom屬性小一些,而且兩者之間的偏移量通常是某個定值。

關系動詞用於比擬屬性值之間的關系。在約束零碎的數學運算中只要三種關系:我們可以限定兩個屬性必需相等,也可以限定其下界和上界。可以運用上面三種規劃關系:

1、Less-than inequality(小於或等於)——NSLayoutRelationLessThanOrEqual

2、Equality(等於)——NSLayoutRelationEqual

3、Greater-than inequality(大於或等於)——NSLayoutRelationGreaterThanOrEqueal

能夠覺得下面這三種關系不會發生太多的規劃組合。但實踐上,這三種關系可以把排布用戶界面時所需的各種規劃狀況全都涵蓋出去。經過這三種關系,我們可以給屬性指定詳細的值,也可以指定其下限或上限。

約束零碎所用的數學算式

關於一切的約束規則,無論它是如何創立處置的,其實質都可歸結為下列方式的等式或不等式:

y關系m * x + b

假如掌握了一下數學知識,那麼能夠會熟習另一個與上述算式很相似的表述方式,式中的R就表示y與右側運算值之間的關系:

yRm * x + b

y與x都是下面引見過的那些視圖的屬性,比如說width、centerY或top。而m則是個表示縮放比例的常數,b是表示偏移量的常數。例如,我們可以規則,“B視圖的左界應該位於A視圖右界的右方15點處”。那麼關系式可以寫成:

B視圖的左界 = A視圖的右界 + 15

這是個“等於”關系,偏移量常量(b)是15,縮放倍數或縮小倍數是1。

【ios 約束(一)】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved