Sagit.Framework For IOS 自動佈局教程:3、主介面:相對同級UIView佈局。
阿新 • • 發佈:2020-08-12
前言:
IOS的介面,分為:狀態列、導航欄、主介面、底部狀態列。
本篇講述主介面的相對同級UIView佈局,其它三個的操作,在其它文章獨立講述。
1、相對同級UIView佈局的基本語法:
基本方法定義:
/當前UI將佈局於指定UI的右側 -(UIView*)onRight:(id)uiOrName; -(UIView*)onRight:(id)uiOrName x:(CGFloat)x; -(UIView*)onRight:(id)uiOrName x:(CGFloat)x y:(CGFloat)y; //當前UI將佈局於指定UI的左側 -(UIView*)onLeft:(id)uiOrName;-(UIView*)onLeft:(id)uiOrName x:(CGFloat)x; -(UIView*)onLeft:(id)uiOrName x:(CGFloat)x y:(CGFloat)y; //當前UI將佈局於指定UI的上方 -(UIView*)onTop:(id)uiOrName; -(UIView*)onTop:(id)uiOrName y:(CGFloat)y; -(UIView*)onTop:(id)uiOrName y:(CGFloat)y x:(CGFloat)x; //當前UI將佈局於指定UI的下方 -(UIView *)onBottom:(id)uiOrName; -(UIView *)onBottom:(id)uiOrName y:(CGFloat)y; -(UIView *)onBottom:(id)uiOrName y:(CGFloat)y x:(CGFloat)x;
2、佈局示例:
通常介面上第一個UI是用相對佈局,後續的UIView,都可以相對於第一個UI進行同級佈局。
比如第一個Logo,用了相對佈局:
[[[[sagit addImageView:@"logo" img:@"logo"] width:170 height:170] relate:Top v:200] toCenter:X];
接下來的App名稱的文字佈局,則可以用同級間的相對佈局。
App名字,是個label,在logo的底部,因此可以用onBotton方法:
[[[[sagit addLabel:nil text:AppName font:48] width:160 height:44] onBottom:@"logo" y:50]toCenter:X];
onBotton可以接收UI的name,也可以傳入UIView,而框架定義了一個巨集:STPreView,代表上一個UI,因此,通用寫法是這樣的:
[[[[sagit addLabel:nil text:AppName font:48] width:160 height:44] onBottom:STPreView y:50] toCenter:X];
通過框架提供的一些巨集定義,寫法可以更簡單快捷一些。
其它方法理解和使用是一樣的。
3、同級佈局和相對佈局一起用:
通常使用同級佈局後,如果位置還不能確定,還可以再繼續使用relate相對佈局。
如:
[[[[sagit addUIView:nil] width:STScreenWidthPx] onBottom:STPreView y:20] relate:Bottom v:0];
添加了一個UI,寬度全屏、在上一個UI底部20px,高度自適應到底部。
4、方法的第二個引數說明:
一般使用同級引數方法時,只使用一個引數,第二個引數不指定時,即相對上一個控制元件對齊(左對齊、頂部對齊)。
框架一共就兩種相對佈局方法,本文就介紹到這裡了。