亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS中的屏幕適配之Autolayout(初級)

2019-11-14 18:38:29
字體:
來源:轉載
供稿:網友

這是第二篇博客啦啦啦,來來來,嗨起來,今天我們要說的時iOS的屏幕適配,隨著APPLE推出的手機越來越多,屏幕的尺寸也越來越多,而屏幕的適配確是相當的麻煩,今天我要說的,網上也許早就有了,我只是說出自己的理解(可能不對啊,勿噴....)

Autolayout其實就是約束了,今天講得是代碼添加約束,用到的第三方是Masonry,相信代碼寫約束的都知道這個第三方庫,好了,廢話不多說,代碼搞起

首先你要去下載個Masonry,或者用cocoapods加到工程中,先來個簡單點得例子啊,下面請重點看注釋啊

UIView *view1 = [[UIView alloc] init];    view1.backgroundColor = [UIColor blackColor];    [self.view addSubview:view1];    [view1 mas_makeConstraints:^(MASConstraintMaker *make) {        //使view1的中點坐標等于self.view的中點        make.center.equalTo(self.view);        //設置view1的size為寬度300,高度300,這里的mas_equalTo好像是設置具體數值用的,而equalTo卻不是        make.size.mas_equalTo(CGSizeMake(300, 300));    }];

運行效果


可以看到橫豎屏都是一樣的,其實Autolayout學的好的話,只需要寫一套代碼就適配所以尺寸了,而且不怕APPLE后來在出其他尺寸,一勞永逸(就是代碼特別煩)

現在來點復雜的,2塊view,第一塊view左邊距離父視圖20,第二塊view右邊距離父視圖30,2塊view等寬間隔為10

UIView%20*view1%20=%20[[UIView%20alloc]%20init];%20%20%20%20view1.backgroundColor%20=%20[UIColor%20blackColor];%20%20%20%20[self.view%20addSubview:view1];%20%20%20%20%20%20%20%20UIView%20*view2%20=%20[[UIView%20alloc]%20init];%20%20%20%20view2.backgroundColor%20=%20[UIColor%20cyanColor];%20%20%20%20[self.view%20addSubview:view2];%20%20%20%20%20%20%20%20[view1%20mas_makeConstraints:^(MASConstraintMaker%20*make)%20{%20%20%20%20%20%20%20%20//view1的左邊距離self.view的左邊距離為20%20%20%20%20%20%20%20%20make.left.equalTo(self.view.mas_left).offset(20);%20%20%20%20%20%20%20%20//view1的右邊距離view2的左邊距離為為-10,為什么是負數,其實是往右邊是正,左邊為負啦(我自己理解的啊),top和buttom也一樣%20%20%20%20%20%20%20%20make.right.equalTo(view2.mas_left).offset(-10);%20%20%20%20%20%20%20%20//這句的意思就是view1的中點得Y值等于self.view的中點的Y值%20%20%20%20%20%20%20%20make.centerY.mas_equalTo(self.view.mas_centerY);%20%20%20%20%20%20%20%20//view1的高度是150,這里要用對象%20%20%20%20%20%20%20%20make.height.mas_equalTo(@150);%20%20%20%20%20%20%20%20//view1的寬度等于view2%20%20%20%20%20%20%20%20make.width.equalTo(view2);%20%20%20%20}];%20%20%20%20[view2%20mas_makeConstraints:^(MASConstraintMaker%20*make)%20{%20%20%20%20%20%20%20%20//view2的左邊距離view1的右邊距離為10,其實就是間隔為10了%20%20%20%20%20%20%20%20make.left.equalTo(view1.mas_right).offset(10);%20%20%20%20%20%20%20%20//view2的右邊距離self.view的右邊距離為-30,自己腦補為什么是負的啊%20%20%20%20%20%20%20%20make.right.equalTo(self.view.mas_right).offset(-30);%20%20%20%20%20%20%20%20//這句的意思就是view2的中點得Y值等于self.view的中點的Y值%20%20%20%20%20%20%20%20make.centerY.mas_equalTo(self.view.mas_centerY);%20%20%20%20%20%20%20%20//view2的高度是150,這里要用對象%20%20%20%20%20%20%20%20make.height.mas_equalTo(@150);%20%20%20%20%20%20%20%20//view2的寬度等于view1%20%20%20%20%20%20%20%20make.width.equalTo(view1);%20%20%20%20}];

運行效果如下

是不是棒棒噠,我們再來寫個3塊view的,其中2塊view的位置和上面一樣,第三塊view在第二塊view的右邊,距離為15,第三塊view右邊距離父視圖距離為20,我希望小伙伴們自己試試,如果一遍就能敲出來所需要的效果的話,證明Masonry已經入門了

UIView *view1 = [[UIView alloc] init];    view1.backgroundColor = [UIColor blackColor];    [self.view addSubview:view1];        UIView *view2 = [[UIView alloc] init];    view2.backgroundColor = [UIColor cyanColor];    [self.view addSubview:view2];        UIView *view3 = [[UIView alloc] init];    view3.backgroundColor = [UIColor redColor];    [self.view addSubview:view3];        [view1 mas_makeConstraints:^(MASConstraintMaker *make) {        //view1的左邊距離self.view的左邊距離為20        make.left.equalTo(self.view.mas_left).offset(20);        //view1的右邊距離view2的左邊距離為為-10,為什么是負數,其實是往右邊是正,左邊為負啦(我自己理解的啊),top和buttom也一樣        make.right.equalTo(view2.mas_left).offset(-10);        //這句的意思就是view1的中點得Y值等于self.view的中點的Y值        make.centerY.mas_equalTo(self.view.mas_centerY);        //view1的高度是150,這里要用對象        make.height.mas_equalTo(@150);        //view1的寬度等于view2        make.width.equalTo(view2);    }];    [view2 mas_makeConstraints:^(MASConstraintMaker *make) {        //view2的左邊距離view1的右邊距離為10        make.left.equalTo(view1.mas_right).offset(10);        //view2的右邊距離view3的右邊距離為-15,自己腦補為什么是負的啊        make.right.equalTo(view3.mas_left).offset(-15);        //這句的意思就是view2的中點得Y值等于self.view的中點的Y值        make.centerY.mas_equalTo(self.view.mas_centerY);        //view2的高度是150,這里要用對象        make.height.mas_equalTo(@150);        //view2的寬度等于view3        make.width.equalTo(view3);    }];        [view3 mas_makeConstraints:^(MASConstraintMaker *make) {        //view3的左邊距離view2的右邊距離為15        make.left.equalTo(view2.mas_right).offset(15);        //view3的右邊距離self.view的右邊距離為-20,自己腦補為什么是負的啊        make.right.equalTo(self.view.mas_right).offset(-20);        //這句的意思就是view3的中點得Y值等于self.view的中點的Y值        make.centerY.mas_equalTo(self.view.mas_centerY);        //view3的高度是150,這里要用對象        make.height.mas_equalTo(@150);        //view3的寬度等于view1        make.width.equalTo(view1);    }];

運行效果

今天的博客就寫到這里的,希望大家能夠入門,暫時還沒在項目中用這種約束,都是比例寫的適配(其實效果不怎么好,但沒有Autolayout這么麻煩),在以后的項目中試試Masonry寫適配,其實這些都是我自己的理解,如果不對的話,歡迎指正,謝謝


上一篇:Objective-C知識總結(2)

下一篇:iOS開發中tableViewCell的懸浮效果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国内产香蕉| 亚洲欧美中文日韩v在线观看| 午夜精品视频在线| 久久久久久久久久久人体| 亚洲第一区第二区| 91夜夜揉人人捏人人添红杏| 日本成人精品在线| 91精品国产高清自在线看超| 亚洲美女动态图120秒| 欧美伦理91i| 成人羞羞国产免费| 欧美极品少妇全裸体| 久久综合88中文色鬼| 中文.日本.精品| 久久人人爽亚洲精品天堂| 久久久久久久影视| 国产精品视频在线观看| 国产一区二区三区日韩欧美| 国产精品一区二区性色av| 亚洲精品一区二区在线| 欧美激情亚洲一区| 日韩精品极品毛片系列视频| 国产午夜精品一区理论片飘花| 亚洲精品www久久久久久广东| 91av在线视频观看| 最近2019年中文视频免费在线观看| 91精品国产九九九久久久亚洲| 一区二区三区无码高清视频| 欧美日韩美女在线观看| 成人欧美在线视频| 91久久夜色精品国产网站| 国产精品亚洲欧美导航| 日韩av网站在线| 亚洲色无码播放| 久久成人av网站| 97激碰免费视频| 午夜精品一区二区三区在线播放| 91精品视频免费看| 在线视频精品一| 成人免费在线视频网站| 欧美精品久久久久久久免费观看| 亚洲午夜小视频| 久久福利网址导航| 97精品一区二区视频在线观看| 一区二区三区无码高清视频| 久久成人18免费网站| 日韩精品一区二区三区第95| 欧美性猛交xxxxx免费看| 91精品国产九九九久久久亚洲| 2019中文字幕全在线观看| 欧美性受xxx| 亚洲精品720p| 国语自产精品视频在线看抢先版图片| 国产欧美亚洲视频| 国产精品羞羞答答| 欧美一区二区三区免费观看| 日韩精品免费在线视频| 亚洲精品一区中文字幕乱码| 久久青草精品视频免费观看| 亚洲精品美女免费| 国外成人性视频| 久久噜噜噜精品国产亚洲综合| 一区二区三区美女xx视频| 亚洲人成啪啪网站| 欧美在线影院在线视频| 国产精品久久久久久久久男| 78m国产成人精品视频| 欧美俄罗斯性视频| 亚洲一区二区三区sesese| 中文日韩在线观看| 亚洲理论在线a中文字幕| 久久精品国产69国产精品亚洲| 久久久国产一区二区三区| 日韩av不卡电影| 欧美大全免费观看电视剧大泉洋| 97不卡在线视频| 日韩免费在线电影| 国产噜噜噜噜噜久久久久久久久| 欧美第一淫aaasss性| 久久久久成人精品| 国产欧美一区二区三区在线| 在线日韩精品视频| 久久久精品欧美| 性色av一区二区咪爱| 欧美成人亚洲成人日韩成人| 欧美激情一级精品国产| 国产精品 欧美在线| 久久精品精品电影网| 精品成人国产在线观看男人呻吟| 国产欧美日韩精品在线观看| 色妞色视频一区二区三区四区| 欧美激情一二三| 国产精品亚洲自拍| 亚洲精品国产精品国自产在线| 欧美成人第一页| 欧美成人精品xxx| 国产欧美日韩视频| 国产日韩精品综合网站| 这里只有精品在线播放| 69久久夜色精品国产69| 亚洲精品久久在线| 国产性色av一区二区| 日韩精品视频中文在线观看| 91精品91久久久久久| 欧美体内谢she精2性欧美| 精品成人久久av| 久久久久久久久久久久av| 中文字幕亚洲精品| 国产一区二区在线播放| 庆余年2免费日韩剧观看大牛| 国产精品青草久久久久福利99| 国产一区二区三区18| 911国产网站尤物在线观看| 亚洲精品白浆高清久久久久久| 国内免费精品永久在线视频| 中国人与牲禽动交精品| 色综合视频一区中文字幕| 亚洲国产第一页| 久久伊人91精品综合网站| 欧美乱妇高清无乱码| 国产美女精彩久久| 欧美华人在线视频| 亚洲欧洲av一区二区| 97国产精品久久| 亚洲男人第一av网站| 国产精品www| 久久99热精品| 亚洲人成网站999久久久综合| 国产精品美女主播| 亚洲黄色有码视频| 久久视频免费在线播放| 欧美一级大片在线观看| 最近2019中文字幕第三页视频| 国产一区二区三区日韩欧美| 97香蕉久久夜色精品国产| 久久激情视频免费观看| 亚洲欧美激情一区| 国内外成人免费激情在线视频| 国语自产精品视频在免费| 国产激情999| 欧美精品中文字幕一区| 欧美精品www在线观看| 国产精品美腿一区在线看| 国产精欧美一区二区三区| 国产精品美女久久久免费| 欧美色图在线视频| 色婷婷综合成人av| 精品欧美aⅴ在线网站| 日韩欧美一区视频| 成人久久18免费网站图片| 亚洲精品久久久久久久久| 国内精品中文字幕| 亚洲精品自在久久| www国产精品视频| 欧美激情一区二区三区久久久| 欧美成人免费在线视频| 久久在线免费观看视频| 亚洲综合在线做性| 国产精品视频白浆免费视频| 精品亚洲一区二区三区在线观看| 日韩美女在线看| 欧美日韩国产一区在线| 久久久99久久精品女同性| 亚洲第一免费网站|