溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

UINavigationController (導(dǎo)航控制器)

發(fā)布時間:2020-07-09 15:54:20 來源:網(wǎng)絡(luò) 閱讀:917 作者:kang502 欄目:開發(fā)技術(shù)


1.UINavigationController (導(dǎo)航控制器)

 

   1.1 是什么?

        繼承自UIViewController,依然是一種控制器,

        這種控制器沒有具體的view,是管理控制器的控制器

 

   1.2 優(yōu)點?

      能夠管理和控制VC的走向,比present方式更清晰

      有層級關(guān)系的  push...   pop...

      沒有層級關(guān)系的  present...   dismiss...

   1.3 如何使用?

      step1:創(chuàng)建UINavigationController的實例

      step2:創(chuàng)建一個具體的vc實例,并將這個vc設(shè)置為UINavigationController的根視圖控制器

      step3:設(shè)置navigationController為window的根視圖控制器

      step4:想推出新的vc時,可以使用pushViewController的方法

      step5:想回退到上一個vc時,可以不寫代碼;或者是使用popViewController的方法

 

   1.4 內(nèi)部原理

      1)navi內(nèi)部有一個可以存儲多個vc的數(shù)組,就是self.navigationController.viewControllers屬性;并且這個數(shù)組使用“棧”的方式來管理數(shù)據(jù)?!皸!钡奶攸c:先進后出,后進先出。

      2)navi必須 有一個根視圖控制器作為第一個展示的vc

      3)push出一個新的vc時,就是往棧屬性中入棧一個vc對象,新的vc入棧之前顯示的那個vc不會被釋放

      4)pop現(xiàn)有vc時,才是將這個vc釋放掉

      5)不能pop根vc

 

   1.5 配置導(dǎo)航欄

        訪問導(dǎo)航欄:self.navigationItem

        導(dǎo)航欄包含三部分:

        1)中間的title

             self.title=  @“”;

        2)左側(cè)的按鈕區(qū)域

            self.navigationItem.leftBarButtonItem/s

        3)右側(cè)的按鈕區(qū)域

            self.navigationItem.rightBarButtonItem/s

        4)按鈕的類型:UIBarButtonItem類型

             可以使用initWithTitle。。方法創(chuàng)建自定義

             文本內(nèi)容的按鈕

             可以使用initWithBarButtonSystemItem…方法創(chuàng)建系統(tǒng)定義好的,有固定外觀的按鈕

 

   1.6 配置工具欄

        訪問工具欄:self.toolBarItems

        工具欄默認是隱藏的,修改以下屬性可以顯示

          

self.navigationController.toolbarHidden = NO;


        工具欄中加載的也是UIBarButtonItem類型的按鈕

       

 

   1.7 特效按鈕

       UIBarButtonSystemItemFixedSpace木棍效果:距離是固定的。通過修改barButton的width屬性來調(diào)整按鈕的寬度

       UIBarButtonSystemItemFlexibleSpace彈簧效果:距離是可變的,可以根據(jù)外在的寬度調(diào)整按鈕所占的寬度

 

     1.8 推出新VC時,設(shè)置底部bar區(qū)域隱藏

       

bvc.hidesBottomBarWhenPushed = YES;


         1.9 導(dǎo)航控制器可以設(shè)置的屬性的作用于范圍

      屬性:

          .title

          .navigationItem.leftBarButtonItem/s

          .navigationItem.rightBarButtonItem/s

          .toolbarItems

       以上四個屬性的設(shè)置只負責(zé)當(dāng)前所屬的vc

 

      屬性:

          .navigationController.toolbarHidden

        設(shè)置后,針對導(dǎo)航控制器管理的所有vc都生效

 

     1.10 問:在不同的vc中都可以訪問self.navigationController,那么是同一個導(dǎo)航控制器嗎?

         答:是

 

 

2. UIImageView

   數(shù)據(jù)類型:NSString —>UILabel 顯示

              UIImage—>UIImageView 顯示

 

   2.1 如何使用

      屬性:

      contentMode用于設(shè)置內(nèi)容顯示的方式

       UIViewContentModeScaleToFill:

                修改寬高比,適應(yīng)p_w_picpathView的區(qū)域大小,圖片會被拉伸,不留白邊

       UIViewContentModeScaleAspectFit:

                維持寬高比不變的情況下,將整張圖片可見,由于圖片的寬高比和設(shè)置的p_w_picpathView的frame的寬高比如果不協(xié)調(diào)的話,可能會留白邊兒。

       UIViewContentModeScaleAspectFill:

                保持寬高比不變的情況下,將p_w_picpathView所占的區(qū)域填滿,所以只會顯示圖片的一部分,不會留白

      【Demo2_UIImageView】

      屬性:

        layer.cornerRadius設(shè)置圓角的半徑

        layer.masksToBounds開啟按邊緣遮罩

        layer.borderWidth 設(shè)置邊框?qū)挾?/strong>

        layer.borderColor 設(shè)置邊框顏色


3.UIScrollView

      3.1 作用:

        在有限的區(qū)域內(nèi),顯示更多的數(shù)據(jù)或圖片

 

     3.2 本質(zhì):

        管理view的view,scrollView本身沒有任何的外觀,依靠添加到scrollView中的其他視圖來完成界面的顯示

    

     3.3 如何使用

        重要的屬性:

         .frame 設(shè)置scrollView用多大的窗口來顯示內(nèi)容

         .contentSize 設(shè)置了可滾動的區(qū)域的大小

         .contentOffset 設(shè)置frame定點與內(nèi)容的左頂點的偏移坐標(biāo)

         .contentInset 設(shè)置內(nèi)容與邊界之間的上、左、下、右的距離

        其他屬性:

         .bounces 是否可以彈跳

         .showsHorizontalScrollIndicator 是否顯示水平方向滾動條

         .showsVerticalScrollIndicator 是否顯示垂直方向滾動條

         .indicatorStyle 

 

     3.4如何實現(xiàn)滾動視圖內(nèi)容的縮放

        step1:設(shè)置滾動內(nèi)容縮放的最大比率

        step2:設(shè)置滾動內(nèi)容縮放的最小比率

        step3:回答問題,說明scrollView里面的哪個子視圖需要縮放

     

 ======================================================================================



向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI