適配技巧?
適配的思維就是AutoLayout的思維,告訴各個控件的區(qū)域相對位置,最初都是根據(jù)設(shè)備的屏幕大小作比較。自適應(yīng)和描述性布局允許將寬度或高度(frame)設(shè)置為固定值,可以給視圖設(shè)置一個最小或是最大值,但是不能將視圖的起始位置(Origner)或是中心位置設(shè)置為固定值,換句話說,你的大小可以給你固定,但是你的位置不能給你固定。當(dāng)對View使用Auto Layout適配的時候,原先對這個View做的frame或者大小都會立即無效,最大的那個View就是父視圖的上下左右的邊距都相當(dāng)于可以跟屏幕的左上角(0,0)坐標(biāo)發(fā)生聯(lián)系。
AutoLayout布局,當(dāng)然首選Xib來實現(xiàn),通過一系列約束使得一個View在任何一個大小的屏幕上都能夠產(chǎn)生好效果。這個很多人以為Xib并不好用,或許認(rèn)為用代碼更加高檔,其實這都是錯覺,要知道蘋果的可視化編程Nib是蘋果的Xcode的開發(fā)工程師耶!當(dāng)年就是因為這個法國人開發(fā)了可視化編程方式才被高傲的喬布斯三顧茅廬苦苦留在了蘋果公司.而且你們難道不覺得在調(diào)節(jié)View視圖的一些大小和位置時,Xib有無可取代的功能么?就是你都不用編譯后在模擬器上跑就能夠輕輕松松獲得改變參數(shù)后的效果!多么便利有趣!另外如果代碼適配,大家通常會發(fā)現(xiàn)如果約束不到位,很容易出現(xiàn)所有View視圖都出不來的情況。所以小技巧就是不要一次性創(chuàng)造完所有的UI,然后再去適配,最好的方法是創(chuàng)造一個View視圖,就及時將這個視圖能夠固定的方向進行固定,而且多用比例來進行適配,同時代碼適配時盡量以Iphone6!而且適配時以一行行為準(zhǔn),更關(guān)鍵的是必須提前考慮好那些變化,哪些不發(fā)生變化。這樣在CEll拉伸時才可以做出取舍!
Masonray特殊情況處理?
1、如果子視圖的邊界總是跟父視圖的邊界的滿足一定的間距關(guān)系,直接使用edges、insets、UIEdgeInsetsMake
2、如果子視圖的寬度和高度總是跟父視圖的寬度和高度滿足一定的加減關(guān)系,直接調(diào)用size、offset、CGSizeMake
3、如果子視圖總是跟父視圖的中心存在關(guān)系,使用center、offset、CGpointMake
4、還可已使用鏈?zhǔn)秸Z言,就是一直不停寫,通常一個make只能設(shè)置一個約束,但是不一定,也可以使用一個make,設(shè)置完所有的約束,包括左、右、上、下、寬、高同時等于父視圖。
在不刪除舊約束的情況下更新和重新構(gòu)建約束?
- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block
- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block