IOS之UIKit_Day05

DAY05數組

回顧ide

1 多MVC之間的頁面切換工具

       1.1推出新的MVC代理

              presentViewController對象

       1.2返回到推出的原VC繼承

              dismissViewController事件

2 多MVC之間的切換傳值圖片

       2.1正向傳值內存

              在B中聲明一個屬性 A中給這個屬性賦值 而後傳到B中使用get

       2.2 反向傳值

              方法一:在B中記錄A的引用 回傳時就能夠給A傳值

              方法二:(委託 協議)在委託方中定義協議 增長Delegate屬性 合適時激發消息

                     代理方:遵照協議 實現方法 將本身設置爲代理對象

              其餘方法:Block塊  通知

3 增長的Delegate屬性 是weak?(避免循環引用)

       A推出B時已經強引用了因此A釋放才能釋放B;B若是Delegate設置成Strong那麼B也須要強引用A,那麼B釋放才能釋放A 這樣就出現了循環引用

----------------------------------------------------------------------------------------------------------------------

1 UINavigationController 導航控制器

       1.1 是什麼?

              繼承自UIViewController,依然是控制器的一種。可是這種控制器沒有View 是管理控制器的控制器

       1.2 優勢?

              可以管理和控制VC的走向 比present更方便

       1.3 如何使用?

              step1:建立UINavigationController的實例

              step2:建立一個具體的VC實例 並將這個VC實例設置爲NavigationController的根視圖控制器

              step3:設置NavigationController爲window的根視圖控制器

              step4:若是想推出新的VC 可使用pushviewController  返回則使用popViewController

       1.4 內部工做原理

              1》NavigationController內部有一個能夠存儲多個VC的數組 就是Self.NavigationController.viewcontroller屬性,而且這個數組使用「棧」的方式管理數據。棧:先進後出。

              2》NavigationController必須有一個根視圖做爲控制器第一個展現VC

              3》push一個新的VC時還須要往棧內存一個VC,新VC入棧以前顯示那個VC不會釋放。

              4》pop現有的VC 纔會被釋放掉

              5》不能pop根VC

       1.5如何配置導航欄

              1.5.1 訪問導航欄:self.NavigationItem

                     導航欄分三個部分:

                            1》左邊

                     self.NavigationItem.leftBarButtonItem 返回類型是一個UIBarButtonItem類型  因此要定義一個 UIBarButtonItem

                            2》中間

                                   self.title(標題)

                            3》右邊

                     self.NavigationItem.righrtBarButtonItem 返回類型是一個UIBarButtonItem類型  因此要定義一個 UIBarButtonItem

       1.6 如何配置工具欄

              1.6.1訪問工具欄:self.toolBarItem

                     工具欄中加載的也是UIBarButtonItem

                     self.NavigationController.toolbarHidden=NO設置關閉隱藏

              1.6.2 定義空間位置能夠藉助木棍 和  彈簧《特效按鈕》

                     //彈簧自適應

               UIBarButtonItem *butt1=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

                //木棍距離是固定的

       UIBarButtonItem *butt2=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];

1.7 在推出新的VC時設置全部Button都隱藏 VC.hidesButtomBarWhenPushed=YES

1.8 導航控制器能夠設置的屬性和區域

               屬性:

               .title 標題

               .navigationItem.leftBarButton/s  一個左控件/多個

               .NavigationItem.rightBarButton/s

               .toolBarItems

               以上四個屬性設置只針對當前VC屬性

               .NavigationController.toolBarItem設置後針對導航控制器管理的全部VC都生效

1.9 在不一樣VC中self.navigationltem 是同一個控制器

1.10 push只能左右推出 要想上下推出,必須從新定義一個Navigationitem 使用prese

 

2 UIImage View<有外觀的控件>

       2.1 如何使用:

              屬性:ContentMode 用於設置顯示方法  枚舉值

                     UIViewContentModeScaleAspectFit 在維持寬高比不變的狀況下 將整張照片顯示(會有留白)

                     UIViewConteModeScaleAspectFill:在維持寬高比不變的狀況下 將ImageView所佔的區域填滿 因此只會顯示圖片的一部分(不會留白)

                     UIViewConteModeScaleToFill:修改寬高比 使其填滿屏幕(不會留白邊)

                     經常使用屬性:

                            imageView.contentMode(設置圖片的顯示模式)

                            imageView.layer.CornerRandius(設置控件在繪製時與邊角相切員半徑)

                            imageView.layer.MasksToBounds(是否按照邊緣添加遮罩層)

 

3 UIScrollView:

       3.1 是什麼?

              在有限的區域顯示更多的信息或者圖片

       3.2 本質?

              管理view的view scrollView自己沒有任何外觀 依靠添加到scrollrollview中的其餘視圖完成界面自己的顯示

              注:設置特效

              設置沒有白邊:scrollView.bounces=NO;

              設置水平沒有移動底紋 scrollView.showsHorizontalScrollView=NO;

              設置垂直方向沒有移動底紋 scrollView.showsVerticalScrollView=NO

       3.3 如何使用:

              1》建立UIImageView的實例 imageView

              2》建立UIScrollView的實例  scrollView

              3》設置UIscrollView的實例的大小

                     scrollView.frame=CGRectMake(0,0,self.frame.size.width,self.view.frame.size.height);用於顯示的位置大小

              4》設置滾動區域的大小

              scrollView.contentSize=ImageView.frame.size

              5》把ImageView給視圖scrollView

              [scrollView addSubview:ImageView]

              6》把scrollView添加到視圖中

       3.4 如何實現滾動內容的縮放:

              1》設置滾動內容縮放的最大比率 最大比率爲1.0

              2》設置滾動內容縮放的最小比率  取長和寬縮放比率最小的一個

              3》回答問題  說明scrollView裏面的那個視圖須要縮放

----------------------------------------------------------------------------------------------------------------------

總結:

1 顯示圖片屏幕中並能實現滑動顯示完整

       1》定義一個UIImage的實例來接受一張圖片 image

       2》定義一個UIimageview的實例來顯示image imageView

       3》定義一個UIScrollView的實例來管理imageView scrollView

       4》把imageView添加到scrollView

       5》設置scrollView的frame爲當前屏幕的frame

       6》設置scrollView的contentsize大小爲整張imageView的大小

       7》把scrollView 添加到self.view

2 設置圖片能夠放大縮小

       在上面6》-----------7》之間添加下:

       a>在程序中聲明一個UIImageView的實例(全局的 調用方法時使用)而且遵照協議<UIScrollViewDelegate>

       b>把以前定義的UIImageView的實例給self.ImageView

       c>設置scrollView最大縮放比

              scrollView.maximumZoomScale=1.0

       d>設置scrollView的最小縮放比

              scrollview.minimumZoomScale=MIN(width,height);

                      CGFloat width=scrollView.frame.size.width /imageView.frame.size.width ;

              CGFloat height=scrollView.frame.size.height /imageView.frame.size.height ;

       e>把當前視圖設置爲代理:

              scrollView.delegate=self

       f>實現方法

              -(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView{

                                   return self.imageView;

                            }

 3 設置小白點 而且小白點跟着移動

       1:在7》以後建立UIPageController的實例pageControl

       2:設置pageControl的frame屬性x=0 y=當前屏幕的大小下方某一位置 width爲當前屏幕的大小 height設置必定的高度

       3:設置小白的個數

       pageControl.numberOfPages=self.imageNames.count;

       4:關閉交互功能pageControl.userInteractionEnabled=NO;開啓時能夠實現點擊小白點的做用小白點跟着移動

       5:定義一個全局的pageControl self.pageControl=pageControl

       6:把pageControl賦給當前的self.view

       7:遵照<UIScrollViewDelegate>協議

       8:實現scrollView移動後須要實現的事件

       -(void)scrollViewDidScroll:(UIScrollView*)scrollView{

              //獲取移動的偏移座標

            CGPoint offSet=scrollView.contentOffset;

               //根據座標求出滾動倒那一屏幕

               NSInteger index=offSet.x/scrollView.frame.size.width;

                self.pageControl.currentPage=index;

       }

 4 在最後一屏添加一個按鈕

       1、在7》以後建立一個Button的按鈕實例

       2、設置button的frame屬性x=view的寬度*圖片的個數-1  y=0  ,width=view.fram.size.width,height=view.frame.size.height;

               3、位button添加方法[Button addTarget:self action:@selector(start) forControlEvents:UIControlEventTouchUpInside];

               4、把button的實例添加到scrollview

               5、定義一個-(void)start{}的方法 並實現

相關文章
相關標籤/搜索