大多數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...