<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### Xcode 4.2之前是有這個模板的,但Xcode 4.2之后的更新版本中就沒有了此模板,綜合來說模板的作用就是為我們編程的時候節省代碼量的。 ### 好了讓我們開始自定義Window-based Application 模板吧! 一.首先選中一個空的模板: ![](https://box.kancloud.cn/2016-06-12_575cce78ec6f3.png) ### 選擇空模板后的結果: ![](https://box.kancloud.cn/2016-06-12_575cce792110e.png) 2.由此可見,這里并既沒有試圖控制器(UIViewControl的子類)也沒有主窗口(UIWindow),需要我們手動去創建: (1)UIViewControl的子類: ![](https://box.kancloud.cn/2016-06-12_575cce794c848.png) 2)UIWindow :可以理解為一個容器,里面可以裝很多UIView,通俗的來講就是UIWindow就是一個畫板,而UIView就是上面一幅幅美麗的圖畫。 ![](https://box.kancloud.cn/2016-06-12_575cce7970f6c.png) 3)向UIWindow中添加視圖控制器和委托類的控件: ![](https://box.kancloud.cn/2016-06-12_575cce7992e04.png) 4)到這里,前期工作就準備好了,哦.....還有一個非常重要的一點:剛才我們所托上去的 控件,它們的最初狀態可都是來自NSObject類型啊,可別忘了修改它們的類,以確保得到其相應的功能。 ![](https://box.kancloud.cn/2016-06-12_575cce79b8c4c.png) File's Owner 可以看做是:程序代碼與前臺UI界面溝通(相互通信)的橋梁。 ![](https://box.kancloud.cn/2016-06-12_575cce79d7108.png) ![](https://box.kancloud.cn/2016-06-12_575cce7a0338c.png) 5)下一步就要進行讓人頭疼的連線了,不過不用擔心,只要理解了運行流程與委托機制就會明白。 可先把連線理解為賦值。 ![](https://box.kancloud.cn/2016-06-12_575cce7a22f83.png) 6)由上圖可看出 File's Owner 把自身的屬性委托對象傳給了Iphone0402 Test............. 到了 這里是最容易讓人犯暈的時候,請聽我一一道來: 首先講一下委托機制: 每個iphone應用程序有且僅有一個UIApplication實例,UIApplication在后臺處理事物,管理這整個程序的生命周期,在程序執行需要時UIApplication會調用被實例化好的委托。 ### (Cocoa Touch 大部分都使用了委托,為UIApplication處理一些事情) 例:有一個Boss類和Employee類。Employee類中有一個干活的方法‘doit’ ,Boss將得到Employee類,去調用這個方法。 ![](https://box.kancloud.cn/2016-06-12_575cce7a44562.png) 由此可以把委托機制簡單理解為:自己的工作讓別人去干。回到此例中Boss中并沒有doit這個 干活的方法,而是得到了Meployee 類(通知其干活)調用doit()。 7)把視圖控制器添加到File's Owner的rootVeiwControl(根視圖控制器)上,也可以理解為將值賦給了rootVeiwControl,為顯示圖形做最后準備。 ![](https://box.kancloud.cn/2016-06-12_575cce7a72217.png) 8)最后一步,雖然不是什么技術,但是,是最容易讓人遺忘的的一步,沒有它,界面將無法顯示。 以下兩種方法都可行: ![](https://box.kancloud.cn/2016-06-12_575cce7a8ee29.png) ![](https://box.kancloud.cn/2016-06-12_575cce7ab1caf.png) 這樣模板就建好了,等一等,我們別忙著慶祝,模板都建好了,也得看一下效果啊,那好我們就用此模板寫一個經典的輸出吧。。。。。Hello World! # 二.讓我們回到子視圖:添加一些小組件。 1) ![](https://box.kancloud.cn/2016-06-12_575cce7accce5.png) ![](https://box.kancloud.cn/2016-06-12_575cce7b00f7c.png) 2)向視圖控制器.m文件中添加內容: ![](https://box.kancloud.cn/2016-06-12_575cce7b1f39a.png) 3)最后還剩下重要的一點,也是容易被忽視的:注釋掉系統自動生成對操作不利的方法: ![](https://box.kancloud.cn/2016-06-12_575cce7b40c25.png) (4)運行結果: ![](https://box.kancloud.cn/2016-06-12_575cce7b5cc00.png) # 最后總結: 一路走過來,可能會讓人產生疑問,就是這個模板的具體作用沒體現出來,原因是,像此類簡單的操作,別的模板也能完成,自己寫模板是在浪費時間嗎? 肯定不是,因為此模板多用于多個UIVeiw,或很復雜的圖形創建,以后會用到,自己創建模板還可以加深對iphone生命周期的理解,及其工作機制。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看