麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

AutoLayout的一些注意事項(xiàng)

2019-11-14 19:21:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

要了解autolayout 首先要知道程序視圖啟動(dòng)順序:

 

-(void)viewWillAppear:(BOOL)animated{    [super viewWillAppear:animated];    NSLog(@"1");}-(void)updateViewConstraints{    [super updateViewConstraints];    NSLog(@"2");}-(void)viewDidLayoutSubviews{    //調(diào)用不止一次 跟子視圖的數(shù)量有關(guān)    [super viewDidLayoutSubviews];    NSLog(@"3");}-(void)viewDidAppear:(BOOL)animated{    [super viewDidAppear:animated];    NSLog(@"4");}updateViewConstraints方法中進(jìn)行視圖上布局計(jì)算,得出各個(gè)控件的frame.但是此時(shí)并沒(méi)有將這些frame賦值給各個(gè)控件。在viewDidLayoutSubviews方法中,各個(gè)控件的frame賦值已經(jīng)完成,但是并不是在這個(gè)方法中賦值的。
如果我們要代碼添加控件和約束,別忘了先去除控件的autoresizing ,否則會(huì)報(bào)出警告,因?yàn)槎邥?huì)存在約束沖突。translatesAutoresizingMaskIntoConstraints=NO 代碼添加控件還應(yīng)注意,控件的創(chuàng)建和添加應(yīng)在updateViewConstraints 方法之前。否則 每次添加控件都會(huì)觸發(fā)updateViewConstraints方法,導(dǎo)致界面會(huì)抖動(dòng),以及出現(xiàn)不期望的結(jié)果。當(dāng)我們使用自動(dòng)布局時(shí)還應(yīng)注意,控件分為兩種,一種是固定寬高的,另一種是不固定的依靠自身內(nèi)容決定寬高的。比如 開(kāi)關(guān)控件就是個(gè)固定大小的,它的大小就是那么大,不會(huì)改變。對(duì)于這種控件,我們只需要設(shè)定它的左邊和上邊的位置就可以了,設(shè)置好之后,這個(gè)控件還可以作為其他控件的約束參照。但是比如label 這樣根據(jù)內(nèi)容決定寬高的控件,雖然在有內(nèi)容時(shí)候,它也可以只設(shè)置左邊和上邊的距離,但是它不能作為其他控件的參照了,除非鎖定了它的寬高。比如 我們?cè)O(shè)定label ,距離左邊父控件 20 ,距離上邊父控件20.那么假如我們有另一個(gè)控件(假定為button)我們不可以設(shè)定button 距離左邊這個(gè)label 20。<span style="font-family: Arial, Helvetica, sans-serif;">自動(dòng)布局中大多數(shù)控件都是好設(shè)定的,但是比較難搞的時(shí)scrollview 。因?yàn)樗强孔陨韮?nèi)容的大小來(lái)決定它的大小的。比如,我們?cè)O(shè)定了scrollview  距離左上下右的距離都是20 ,那么它會(huì)提示警告。解決的辦法之一就是在scrollView內(nèi)部再添加一個(gè)容器view,將這個(gè)view設(shè)定為與scrollview 完全貼近。然后將這個(gè)view的大小改為我們所需要的contentView的大小。最后再這個(gè)view中添加控件即可實(shí)現(xiàn)滾動(dòng)。</span>
總體來(lái)說(shuō)自動(dòng)布局很好地解決了屏幕適配 ,尤其是橫豎屏切換的問(wèn)題。大大簡(jiǎn)化了我們的計(jì)算代碼,但是我們又有多少應(yīng)用是同時(shí)支持橫豎屏的呢?而且自動(dòng)布局使我們界面的動(dòng)畫(huà)及控件的動(dòng)態(tài)創(chuàng)建都收到了極大的影響,盡管這些影響都能解決,但是還是不如計(jì)算frame方便。而且自動(dòng)布局盡管引入了vfl 語(yǔ)言簡(jiǎn)化代碼,但是約束設(shè)置錯(cuò)誤的話(huà)真的是很難查,如果我們需要使用動(dòng)畫(huà)的話(huà),需要將約束設(shè)置為屬性。設(shè)置成屬性的話(huà),不如計(jì)算frame方便。如果你數(shù)學(xué)不是很差的話(huà),建議你還是使用計(jì)算frame 來(lái)布局吧</span>

 

 


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产va在线观看 | av免费在线免费观看 | 免费观看视频在线 | 久久99精品久久久久久秒播放器 | 国产精品久久久久网站 | a视频在线播放 | 高颜值美女啪啪 | 九九热在线视频观看这里只有精品 | 久久久www视频 | 国产精品久久在线观看 | 激情宗合 | 多男操一女视频 | 久久99精品久久久久久久久久久久 | 久久99精品久久久久久园产越南 | 国产精品久久久久国产精品三级 | 一级做a爱片久久毛片a高清 | 国产精品视频免费在线观看 | 成人男女激情免费视频 | av在线免费看网站 | 欧美日韩国产一区二区三区在线观看 | 色人阁五月天 | 久久日韩在线 | 国产精品视频2021 | 九九热视频免费在线观看 | 777zyz色资源站在线观看 | 成人区精品一区二区婷婷 | 久久久免费观看完整版 | 精品亚洲va在线va天堂资源站 | 国产资源在线看 | 污视频在线看 | 毛片电影网址 | 黄色高清免费网站 | 亚洲一区二区免费视频 | 国产午夜精品在线 | 美女福利视频国产 | 国产免费观看a大片的网站 欧美成人一级 | 羞羞视频免费网站男男 | 欧美国产一区二区三区 | 欧美一级性 | 一级黄色欧美 | 国产成人在线免费观看视频 |