<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • ios開發(fā)之純代碼界面,iOS開發(fā)吧

            iOS開發(fā)過程中,你更喜歡用Storyboard/xib做界面,還是直接用代碼來寫界面?

            個人還是比較建議用純代碼,至于原因,也很簡單,層的可控性更強(qiáng),項(xiàng)目構(gòu)架也會更緊湊,對于維護(hù)和其他開發(fā)者接手會更容易。缺點(diǎn)是代碼量大,對于開發(fā)語言程度不夠者會很吃力。至于很多人說SB和xib在適配方面的優(yōu)勢。。。。我只想說,iOS有自己的一套自動布局的東西,稍微有點(diǎn)技術(shù)的開發(fā)者也會自己封裝些類別方法進(jìn)行封裝,或者也有自動布局的開源庫等等,當(dāng)然,這個是仁者見人智者見智了。

            創(chuàng)新互聯(lián)成立于2013年,先為蒼南等服務(wù)建站,蒼南等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為蒼南企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

            關(guān)于SB和xib開發(fā)或者純代碼開發(fā)從蘋果開放SB,xib以后就有很大爭議,但是既然做開發(fā),那就是程序猿,不論個人技術(shù)水平如何,個人覺得開發(fā)者不應(yīng)該過多依賴于類似界面開發(fā)工具,只有從代碼出發(fā),才能更好的掌握一門語言和一種開發(fā)模式,只有這樣,對于自身的成長和技術(shù)的累計(jì)才是最有利的。

            ios做ui界面是用純代碼實(shí)現(xiàn)好還是拖控件好

            用純代碼實(shí)現(xiàn)有利于后期的維護(hù),如果只是做一次就不再考慮維護(hù)之類的問題,拖拽方便一些,不過本人認(rèn)為純代碼實(shí)現(xiàn)比較好

            ios中純手寫代碼怎么實(shí)現(xiàn)內(nèi)容的自動布局

            原理:IOS6.0 之后,蘋果優(yōu)化了UI界面的布局方式,提出了自動布局的概念,和之前的autoresizing相比功能更強(qiáng)大。子視圖基于父視圖的自動布局顯示。都是父視圖去添加對子視圖的約束。

            在這里主要說的是通過代碼對自動布局視圖的實(shí)現(xiàn)。

            代碼中一般用到的有兩個添加約束的方式:

            1.- (void)addConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0);

            2.- (void)addConstraints:(NSArray *)constraints NS_AVAILABLE_IOS(6_0);

            /span

            在使用自動布局之前要對子視圖的布局方式進(jìn)行調(diào)整,用到這個UIView的屬性。

            - (BOOL)translatesAutoresizingMaskIntoConstraints NS_AVAILABLE_IOS(6_0); // Default YES

            需要將其設(shè)置為NO;

            下面用簡單例子說明一下:

            UIView *v1 = [[UIView alloc] initWithFrame:CGRectZero];

            v1.translatesAutoresizingMaskIntoConstraints = NO;

            v1.backgroundColor = [UIColor redColor];

            [self.view addSubview:v1];

            UIView *v2 = [[UIView alloc] initWithFrame:CGRectZero];

            v2.backgroundColor = [UIColor grayColor];

            v2.translatesAutoresizingMaskIntoConstraints = NO;

            [self.view addSubview:v2];//添加兩個允許自動布局的子視圖

            [self.view addConstraint:[NSLayoutConstraint constraintWithItem:v1

            attribute:NSLayoutAttributeWidth

            relatedBy:NSLayoutRelationEqual

            toItem:self.view

            attribute:NSLayoutAttributeWidth

            multiplier:1.0

            constant:0]];//設(shè)置子視圖的寬度和父視圖的寬度相同

            [self.view addConstraint:[NSLayoutConstraint constraintWithItem:v1

            attribute:NSLayoutAttributeHeight

            relatedBy:NSLayoutRelationEqual

            toItem:self.view

            attribute:NSLayoutAttributeHeight

            multiplier:0.5

            constant:0]];//設(shè)置子視圖的高度是父視圖高度的一半

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

            [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[v1][v2(==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 metrics:nil views:views]];//最后是垂直布局兩個子view

            這樣就可以實(shí)現(xiàn)上下兩個view,各占一半。旋轉(zhuǎn)屏幕的情況下也會自動處理布局。這樣看起來代碼多,但是可以適應(yīng)多種分辨率的屏幕。不排除以后蘋果出更大更多分辨率的手機(jī)。

            關(guān)于constraintsWithVisualFormat:函數(shù)介紹:

            constraintsWithVisualFormat:參數(shù)為NSString型,指定Contsraint的屬性,是垂直方向的限定還是水平方向的限定,參數(shù)定義一般如下:

            V:|-(=XXX) :表示垂直方向上相對于SuperView大于、等于、小于某個距離

            若是要定義水平方向,則將V:改成H:即可

            在接著后面-[]中括號里面對當(dāng)前的View/控件 的高度/寬度進(jìn)行設(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: :表示水平

            = :表示視圖間距、寬度和高度必須大于或等于某個值

            = :表示視圖間距、寬度和高度必須小宇或等于某個值

            == :表示視圖間距、寬度或者高度必須等于某個值

            @ :=、=、== 限制 最大為 1000

            1.|-[view]-|: 視圖處在父視圖的左右邊緣內(nèi)

            2.|-[view] : 視圖處在父視圖的左邊緣

            3.|[view] : 視圖和父視圖左邊對齊

            4.-[view]- : 設(shè)置視圖的寬度高度

            5.|-30.0-[view]-30.0-|: 表示離父視圖 左右間距 30

            6.[view(200.0)] : 表示視圖寬度為 200.0

            7.|-[view(view1)]-[view1]-| :表示視圖寬度一樣,并且在父視圖左右邊緣內(nèi)

            8. V:|-[view(50.0)] : 視圖高度為 50

            9: V:|-(==padding)-[imageView]-=0-[button]-(==padding)-| : 表示離父視圖的距離

            為Padding,這兩個視圖間距必須大于或等于0并且距離底部父視圖為 padding。

            10: [wideView(=60@700)] :視圖的寬度為至少為60 不能超過 700

            11: 如果沒有聲明方向默認(rèn)為 水平 V:

            iOS scrollView自動布局技巧之二 - 純代碼自動布局

            目錄:

            注意:

            - 不管以上那種情況,scrollView 本身的大小和位置一定要相對固定!

            - 可以使用frame直接設(shè)置,也可以使用自動布局設(shè)置。

            根據(jù)排列組合,共有 2*2 = 4 中情況,下面分別分析:

            這種情況沒什么好說的,直接設(shè)置即可。

            這種情況相當(dāng)于是第四種情況的簡化版,故請先看[第四種方式]。

            我們知道,只要設(shè)置 scrollView 的 contentSize,就限定了 scrollView 的可滾動范圍。所以這種情況,并不能很好的根據(jù)子控件的變化而動態(tài)顯示完整的內(nèi)容。

            所以子控件bounds變化的情況,需要使用[第四種方式]設(shè)置。

            首先來做個分析:

            第1條,兩種設(shè)置方式,自己根據(jù)實(shí)際情況選擇一種即可;

            第2條,將所有子視圖塞進(jìn)一個容器視圖中。即先給scrollView添加一個 唯一直接子視圖 。

            通俗點(diǎn)說就是創(chuàng)建一個 sizeView 設(shè)置其大?。ㄖ苯釉O(shè)置frame或者使用autolayout設(shè)置皆可),然后將其添加到scrollView的子視圖,其他七七八八的所有小子視圖都添加在這個直接子視圖 sizeView 中,這個直接子視圖就相當(dāng)于 contentView。

            這樣只要設(shè)置這個直接子視圖 sizeView 的大小和約束就好了。

            如果設(shè)置好了這個直接子視圖 sizeView 的約束,那么這個直接子視圖 sizeView 的范圍就是 scrollView 的滾動范圍嘍!

            第3條,其實(shí)設(shè)置子視圖布局就2個要點(diǎn):

            如圖1、圖2

            圖2為豎直、水平方向皆可滾動,注意觀察滾動條位置。

            圖2為豎直、水平方向皆可滾動,注意觀察滾動條位置。

            如此設(shè)置布局是不是很方便呢?

            分享題目:ios開發(fā)之純代碼界面,iOS開發(fā)吧
            地址分享:http://www.jbt999.com/article40/dsihceo.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、企業(yè)網(wǎng)站制作品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            外貿(mào)網(wǎng)站制作

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 成人视频在线观看黄色18 | 无码成人A片在线观看 | 逼操逼网 | 色婷婷在线精品视频 | 天天操天天干天天操天天干 |