尚學(xué)堂IOS培訓(xùn)AutoLayout(自動布局代碼控制)簡單總結(jié)_第1頁
尚學(xué)堂IOS培訓(xùn)AutoLayout(自動布局代碼控制)簡單總結(jié)_第2頁
尚學(xué)堂IOS培訓(xùn)AutoLayout(自動布局代碼控制)簡單總結(jié)_第3頁
尚學(xué)堂IOS培訓(xùn)AutoLayout(自動布局代碼控制)簡單總結(jié)_第4頁
尚學(xué)堂IOS培訓(xùn)AutoLayout(自動布局代碼控制)簡單總結(jié)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、北京尚學(xué)堂提供原理:IOS6.0 之后,蘋果優(yōu)化了UI界面的布局方式,提出了自動布局的概念,和之前的autoresizing相比功能更強大。子視圖基于父視圖的自動布局顯示。都是父視圖去添加對子視圖的約束。在這里主要說的是通過代碼對自動布局視圖的實現(xiàn)。代碼中一般用到的有兩個添加約束的方式:1.- (void)addConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0);2.- (void)addConstraints:(NSArray *)constraints NS_AVAILABLE_IOS(6_0);<<

2、;/span>在使用自動布局之前要對子視圖的布局方式進行調(diào)整,用到這個UIView的屬性。- (BOOL)translatesAutoresizingMaskIntoConstraints NS_AVAILABLE_IOS(6_0); / Default YES需要將其設(shè)置為NO;下面用簡單例子說明一下:   UIView *v1 = UIView alloc initWithFrame:CGRectZero;   v1.translatesAutoresizingMaskIntoConstraints = NO; &

3、#160;  v1.backgroundColor = UIColor redColor;    self.view addSubview:v1;    UIView *v2 = UIView alloc initWithFrame:CGRectZero;    v2.backgroundColor = UIColor grayColor;    v2.translatesAutoresizingMaskIntoCo

4、nstraints = NO;    self.view addSubview:v2;/添加兩個允許自動布局的子視圖   self.view addConstraint:NSLayoutConstraint constraintWithItem:v1                       &#

5、160;                                  attribute:NSLayoutAttributeWidth          

6、                                                relatedBy:NS

7、LayoutRelationEqual                                               

8、;              toItem:self.view                                 &

9、#160;                        attribute:NSLayoutAttributeWidth                    

10、;                                     multiplier:1.0          

11、60;                                                constant:

12、0;/設(shè)置子視圖的寬度和父視圖的寬度相同    self.view addConstraint:NSLayoutConstraint constraintWithItem:v1                                

13、                          attribute:NSLayoutAttributeHeight                  

14、60;                                       relatedBy:NSLayoutRelationEqual     &#

15、160;                                                 &#

16、160;     toItem:self.view                                         

17、0;                attribute:NSLayoutAttributeHeight                            &

18、#160;                            multiplier:0.5                   

19、;                                        constant:0;/設(shè)置子視圖的高度是父視圖高度的一半   self.view ad

20、dConstraints:NSLayoutConstraint constraintsWithVisualFormat:"H:|-0-v1v2(=v1)-0-|" options:0 metrics:nil views:views;/通過addConstraints 添加對水平方向上v1的控制-距離父視圖左側(cè)距離為0(距離為0的話也可省略)同時將v2的水平方向的寬度和v1設(shè)置成相同    self.view addConstraints:NSLayoutConstraint constraintsWithVisualFormat:&q

21、uot;V:|-0-v1v2(=v1)|" options:0 metrics:nil views:views;/通過addConstraints 添加對垂直方向上v1的控制-距離父視圖上側(cè)距離為0(距離為0的話也可省略)同時將v2的垂直方向的高度和v1設(shè)置成相同        self.view addConstraints:NSLayoutConstraint constraintsWithVisualFormat:"V:|-0-v1-0-v2-0-|" options:0 met

22、rics:nil views:views;/最后是垂直布局兩個子view這樣就可以實現(xiàn)上下兩個view,各占一半。旋轉(zhuǎn)屏幕的情況下也會自動處理布局。這樣看起來代碼多,但是可以適應(yīng)多種分辨率的屏幕。不排除以后蘋果出更大更多分辨率的手機。關(guān)于constraintsWithVisualFormat:函數(shù)介紹:constraintsWithVisualFormat:參數(shù)為NSString型,指定Contsraint的屬性,是垂直方向的限定還是水平方向的限定,參數(shù)定義一般如下:V:|-(>=XXX) :表示垂直方向上相對于SuperView大于、等于、小于某個距離若是要定義水平方向,則將V:改成H

23、:即可在接著后面-中括號里面對當(dāng)前的View/控件 的高度/寬度進行設(shè)定;options:字典類型的值;這里的值一般在系統(tǒng)定義的一個enum里面選取metrics:nil;一般為nil ,參數(shù)類型為NSDictionary,從外部傳入 /衡量標(biāo)準(zhǔn)views:就是上面所加入到NSDictionary中的綁定的View在這里要注意的是 AddConstraints  和 AddConstraint 之間的區(qū)別,一個添加的參數(shù)是NSArray,一個是NSLayoutConstraint使用規(guī)則|: 表示父視圖  -:表示距離  V:  :表示垂直  H:  :表示水平>= :表示視圖間距、寬度和高度必須大于或等于某個值    <= :表示視

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論