<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉移至github,大家請訪問 http://qaseven.github.io/

    IOS開發(fā)之視圖和視圖控制器

     視圖(View), 視圖控制器(ViewController)是IOS開發(fā)UI部分比較重要的東西。在學習視圖這一塊的東西的時候,感覺和Java Swing中的Panel差不多。在UIKit框架中都有一個UIWindow來容納我們的View。應用程序中幾乎全部的可視控件都是UIView以及UIView的子類的實例,并且UIWindow也是UIView的子類。UIWindow可以不借助于父類視圖顯示在屏幕上,其余的視圖都需要添加到父視圖中才能顯示。窗口是用來顯示視圖的,下面我們將會結合著實例來具體的學習一下IOS中的View和ViewController
      1.首先我們需要建一個EmptyProject來測試我們的View和ViewController. 我們空工程的文件結構如下,我們只需在AppDelegate.m中添加我們的視圖,還是那句話為了更好的理解我們的視圖,所有視圖的創(chuàng)建和配置我們都用代碼編寫。
      2.在學習UIView之前我們先在我們的EmptyProject中添加一個視圖,看一下效果,上面的代碼是為我們的EmptyProject添加一個UIWindow,是系統(tǒng)為我們創(chuàng)建的,我們接下來要放置的UIIView都是放在Window中,一般每個應用都只有一個Window,當然有的游戲會有多個應用窗口。下面的一段代碼是往我們Window上添加一個主視圖,通過CGRectMake來給我們新添的View定位。 CGRectMake(x, y, width, height);  配置背景顏色為greenColor,最后添加到我們的window上。
      3.界面都是視圖對象,即在UIView類的實例中進行布局,UIView表示屏幕上的一塊矩形區(qū)域,負責渲染矩形區(qū)域中的內(nèi)容,并且響應該區(qū)域內(nèi)發(fā)生的觸摸事件。我們還可以把視圖看做是一個視圖容器,視圖上面還可以添加一個子視圖。往父視圖中添加的SubView會被放在一個數(shù)組中。往我們SuperView中添加的SubView的坐標和index都是相對于我們的父視圖來配置的。我們?yōu)樯厦娴囊晥D在添加一個subView,代碼如下:
      運行效果如下:
      下面是iOS提供的一些管理子視圖的方法,常用方法如下:
      (1) initWithFrame : 通過frame初始化視圖,參數(shù)為CGRectMake(x, y, width, height);
      (2) insertSubView: atIndex: 往指定層上插入視圖,哪個View調(diào)用該方法,index就是相對于誰。
      (3) insertSubView: aboveSubView: 在某個視圖上插入子視圖。
      (4) insertSubView: belowSubView: 在某個子視圖的后面添加一個新的視圖
      (5) bringSubViewToFront: 把子視圖放到最前
      (6) sendSubViewToBack: 把子視圖放到最后
      (7) exchangeSubviewAtIndex: withSubviewAtIndex: 交換兩個視圖的前后順序
      (8) removeFromSuperview: 從父視圖中移除view
      (9) -(void) addSubview: (UIView *) view 添加一個視圖
      視圖的層次用index來區(qū)分,這個值從0開始以步長1依次增加,index為0的時候代表視圖層次的最底層,下面是蘋果官方文檔對Views的介紹的截圖:
      視圖層大致分為下面的幾類
      1.容器視圖
      容器視圖用于增強其他視圖的功能,或者為視圖內(nèi)容提供額外的視覺分隔,比如UIScorllView類用于顯示因內(nèi)容太大而無法顯示在一個屏幕上的視圖,也就是自動添加滾動條,入下面第一個圖。UITableView類是UIScrollView類的子類,用于管理數(shù)據(jù)列表,如圖二,還有其他的容器視圖在這就不一一列舉啦。
      2.控件
      控件用于創(chuàng)建大多數(shù)應用程序的用戶界面。控件是一種特殊類型的視圖,繼承子UIControl超類,通常要綁定回調(diào)方法(比如Target-Action回調(diào)和委托回調(diào)),用于用戶交互。控件包括按鍵,文本框,滑塊,和切換開關。部分控件如下所示:
      3.顯示視圖
      控件和很多其他類型的視圖都提供了交互行為,而另外一些視圖則只是用于簡單的顯示信息。具有這種行為的UIKit類包括 UIImageView, UILabel, UIProgressView, UIActivityIndicatorView;下面是UIProgressView顯示視圖
      4.文本和Web視圖
      文本和web視圖為應用程序提供更為高級的顯示多行文本的方法。UITextView類支持在滾動區(qū)域內(nèi)顯示和編輯多行文本;而UIWebView類則提供顯示HTML內(nèi)容的方法
      5.警告視圖和動作表單
      警告視圖和動作表單用于即刻取得用戶的注意。 UIAlertView類在屏幕上彈出一個藍色的警告框,而UIActionSheet類則從屏幕的底部劃出動作框

     6.導航視圖
      頁簽條和導航條和視圖控制器結合使用,為用戶提供從一個屏幕到另一個屏幕的導航工具。在使用是,你通常不必直接UITableBar和UINavigationBar的項,而是通過恰當?shù)目刂破鹘涌诨騃nterface Builder來對其進行配置,Table Bar 和 Navigation Bar如下:
      上面視圖部分先就說這么多吧,那么我們的視圖控制器應如何使用呢? 在本文剛開始的時候我們加入的view的代碼都是在AppDelegate.m的文件里加的,其實沒沒那么做的,如果我們一直在上面的文件中實例化我們的各種控件,我們的應用程序代碼會非常難維護。那么我們?nèi)绾谓o一個EmptyProject添加一個視圖控制器呢?上面貼啦這么的多的圖片啦,接下來讓我們上點代碼吧!
      1.我們在一個空工程中新建一個視圖控制器的類MainViewController, 讓MainViewController繼承于UIViewController, MainViewController.h文件的內(nèi)容如下:
      #import <UIKit/UIKit.h>
      @interface MainViewController : UIViewController
      @end
      2.我們在MainViewController.m中進行我們的視圖聲明和實例化,代碼如下:
    #import "MainViewController.h"
    //用延展隱藏我們的組件
    @interface MainViewController ()
    @property (nonatomic, strong) UIView *subView;
    @end
    //-------實現(xiàn)部分-----------
    @implementation MainViewController
    //主視圖加載后要做的事情
    -(void)viewDidLoad
    {
    //實例化view并添加到mainView
    self.subView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 150)];
    self.subView.backgroundColor = [UIColor brownColor];
    [self.view addSubview:self.subView];
    }
    @end
      3.我們需要把我們新建的視圖控制器和我們的窗口關聯(lián),在AppDelegate.m中實例化MainViewController并添加到window中,代碼如下:
      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
      self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
      // Override point for customization after application launch.
      self.window.backgroundColor = [UIColor whiteColor];
      [self.window makeKeyAndVisible];
      //實例化MainViewController,并添加到window
      MainViewController * mianViewController = [[MainViewController alloc] init];
      [self.window addSubview:mianViewController.view];
      return YES;
      }
      先暫且這么理解著視圖和視圖控制器,隨著以后的深入的學習會隨時更新和修改博客的。

    posted on 2014-11-21 09:38 順其自然EVO 閱讀(194) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    <2014年11月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产成人综合精品| 亚洲午夜久久久久久尤物| 美女视频黄.免费网址 | 毛片无码免费无码播放| 国产亚洲人成网站观看| 国产在线观看免费av站| 亚洲国产日韩在线视频| 日本免费在线中文字幕| 亚洲国产综合91精品麻豆| 最近2019中文字幕免费直播 | 丁香花在线观看免费观看| 亚洲中文字幕无码mv| 国产一区二区三区无码免费| 免费亚洲视频在线观看| 亚洲人成网站18禁止一区| 99久久国产精品免费一区二区 | 小草在线看片免费人成视久网| 亚洲一区免费观看| 免费无码又黄又爽又刺激| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲视频在线一区二区| 日本高清免费观看| 亚洲伊人久久大香线蕉结合| 国产在线观看免费视频播放器| jizz在线免费观看| 久久亚洲sm情趣捆绑调教| 永久黄网站色视频免费直播| 伊人久久国产免费观看视频| 亚洲国产精品不卡在线电影| 性xxxx视频播放免费| 国产精品视频全国免费观看 | 亚洲人成色777777精品| 亚洲一区二区三区在线视频| 99re免费在线视频| 久久亚洲精品无码av| 久久精品国产精品亚洲色婷婷| 在线视频观看免费视频18| 无码日韩人妻AV一区免费l| 精品亚洲aⅴ在线观看| 国产成人免费a在线资源| 伊人久久大香线蕉免费视频|