1. 程式人生 > 實用技巧 >Sagit.Framework For IOS 自動佈局教程:2、主介面:相對父窗體UIView佈局。

Sagit.Framework For IOS 自動佈局教程:2、主介面:相對父窗體UIView佈局。

前言:

IOS的介面,分為:狀態列、導航欄、主介面、底部狀態列。

本篇講述主介面的相對佈局,其它三個的操作,在其它文章獨立講述。

1、相對佈局的基本語法:

基本方法定義:

//!相對當前UI的父檢視佈局 XYLocation 決定相對的位置
-(UIView*)relate:(XYLocation)location v:(CGFloat)value;
-(UIView*)relate:(XYLocation)location v:(CGFloat)value v2:(CGFloat)value2;
-(UIView*)relate:(XYLocation)location v:(CGFloat)value v2:(CGFloat)value2 v3:(CGFloat)value3;
-(UIView*)relate:(XYLocation)location v:(CGFloat)value v2:(CGFloat)value2 v3:(CGFloat)value3 v4:(CGFloat)value4;

XYLocation的列舉定義:

//!佈局時的相對位置(取值的依據為:Left:1 Top:2 Ritht:3 Bottom:4 可以根據值來檢測所相對哪些位置)
typedef NS_ENUM(NSUInteger,XYLocation)  {
    Left = 1,
    LeftTop = 12,
    LeftTopRight = 123,
    LeftTopBottom 
= 124, LeftRight = 13, LeftBottom = 14, LeftBottomRight = 143, Top = 2, TopRight = 23, TopBottom = 24, TopRightBottom = 234, Right = 3, RightBottom = 34, Bottom = 4, //相對四邊 LeftTopRightBottom = 1234 };

2、佈局示例:

佈局的起始寫法:

如果是在XXXUIView中:以self開頭
如果是在XXXController中:以小寫sagit開頭(巨集定義為self.view)

示例:

新增logo圖示的佈局:

寫法一:相對左上右固定三個位置。

[[[sagit addImageView:@"logo" img:@"logo"] width:170 height:170] relate:LeftTopRight v:290 v2:200 v3:290];

寫法二:相對頂部位置,再居中。

[[[[sagit addImageView:@"logo" img:@"logo"] width:170 height:170] relate:Top v:200] toCenter:X];

3、定義新增控制元件時設定XY座標(即預設為相對 LeftTop的相對佈局)

如:新增logo圖片並定義寬高和初始座標(相對父UI)

[[sagit addImageView:nil img:@"logo"] width:170 height:170 x:290 y:200];

和以下程式碼功能一致:

 [[[sagit addImageView:nil img:@"logo"] width:170 height:170] relate:LeftTop v:290 v2:200];

總結:

Sagit的佈局比較簡單,只要看著標註好的圖寫程式碼就可以了。

相對佈局是相對於父UI、下一篇介紹同級UI的相對佈局使用方法。