自動布局與視覺化格式語言

2021-07-10 11:34:42 字數 2047 閱讀 6863

大多數ui元件的定位可以使用下面的公式來解決:

obj1.propery1 = obj2.property2 * multiplier) + constant value

約束是相對于父檢視的乙個概念。

約束使用nslayoutconstraint的類方法來建立:

[nslayoutconstraint constraintwithitem:(nonnull id) //表示上述公式的obj1

attribute:(nslayoutattribute) //代表公式中的property1

relatedby:(nslayoutrelation) //代表公式中的等號,可以設定為其他值

toitem:(nullable id) //代表公式中的obj2

attribute:(nslayoutattribute) //代表公式中的property2

multiplier:(cgfloat) //代表公式中的乘號

constant:(cgfloat)]; //代表公式中的約束值

當建立完約束之後,就可以便捷的把它們新增到適當的檢視中,使用以下uiview類方法:

addconstraint和addconstraints

在表述約束的格式化字串中,使用h:指定水平排列,使用v:指定垂直排列。

uitextfield *textfieldemail = [[uitextfield alloc] init];

uitextfield *textfieldconfirmemail = [[uitextfield alloc] init];

nsmutablearray *constaints = [nsmutablearray array];

nsdictionary *viewsdictionary = nsdictionaryofvariablebindings(textfieldemail, textfieldconfirmemail);

//nsdictionary *viewsdictionary = @;

[constaints addobjectsfromarray:

[nslayoutconstraint constraintswithvisualformat:@"h:|-[textfieldemail]-|"

options:0

metrics:nil

views:viewsdictionary]];

[constaints addobjectsfromarray:

[nslayoutconstraint constraintswithvisualformat:@"v:|-[textfieldemail]"

options:0

metrics:nil

views:viewsdictionary]];

[constaints addobjectsfromarray:

[nslayoutconstraint constraintswithvisualformat:@"h:|-[textfieldconfirmemail]-|"

options:0

metrics:nil

views:viewsdictionary]];

[constaints addobjectsfromarray:

[nslayoutconstraint constraintswithvisualformat:@"v:[textfieldemail]-[textfieldconfirmemail]"

options:0

metrics:nil

views:viewsdictionary]];

[self.view addconstraints:constaints];

IOS 視覺化格式

視覺化格式由乙個描述檢視的文字字串組成。你根據項出現的順序依次列出他們。文字序列指定間隔,不等量和優先順序。結果將布局形象化地表現為乙個簡短的文字。如 nslayoutconstraint.constraints withvisualformat v viwe1 8 view2 options al...

CSS視覺化格式模型

在css中,一切都是框。div h1 或 p 元素常常被稱為塊級元素,意味著這些元素顯示為一塊內容,呈現出的是乙個個塊框。與之相反,span 和 strong 等元素稱為行內元素,這是因為它們的內容會被顯示在一行中,呈現出的是乙個個行內框。視覺化格式模型解釋的就是,怎樣把這些框,按照一定規則擺放在頁...

資料視覺化 R語言實現網路視覺化

最近在學習貝葉斯網路,當用k2演算法建立了貝葉斯網路結構之後,用r語言工具可以很清楚地實現網路視覺化。例如,在鐵達尼號資料集中,最後生成的貝葉斯網路結構如下 age,portembarked,numparentschildren,age numparentschildren,passengercla...