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

下載本文檔

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

文檔簡(jiǎn)介

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

2、;/span>在使用自動(dòng)布局之前要對(duì)子視圖的布局方式進(jìn)行調(diào)整,用到這個(gè)UIView的屬性。- (BOOL)translatesAutoresizingMaskIntoConstraints NS_AVAILABLE_IOS(6_0); / Default YES需要將其設(shè)置為NO;下面用簡(jiǎn)單例子說(shuō)明一下:   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;/添加兩個(gè)允許自動(dòng)布局的子視圖   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;/通過(guò)addConstraints 添加對(duì)水平方向上v1的控制-距離父視圖左側(cè)距離為0(距離為0的話也可省略)同時(shí)將v2的水平方向的寬度和v1設(shè)置成相同    self.view addConstraints:NSLayoutConstraint constraintsWithVisualFormat:&q

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論