iPad編程,ipad編程軟體

來源:互聯網
上載者:User

iPad編程,ipad編程軟體

1. iPad

   現有型號:

   iPad Pro, iPad Air, iPad mini 均配備Retina顯示屏。早期還有iPad

   依次對應的座標系及解析度:

   iPad Pro 座標系:1366 x 1024  解析度:2732 x 2048

   iPad Air  座標系:1024 x 768    解析度:2048 x 1536

   iPad mini  座標系:1024 x 768    解析度:2048 x 1536

 

   開發過程中圖片可只設計2048 x 1536 解析度下的。根據實際情況,也可選擇1024x1536解析度。

2. iPad 與iPhone編程的區別

    > 螢幕尺寸/解析度不同

       iPhone:640x960,640x1136……

       iPad : 2048x1536 

     > UI元素的布局

       iPad螢幕比iPhone大,可容納顯示更多的UI元素,兩者的相片順序略有不同.

       例如: 在iPhone中使用的UITabBarController分欄控制器,雖然在iPad下也可以使用,但一般情況下考慮到使用者體驗,不會使用在頁面下方顯示分欄菜單的方式,而是使用在左側顯示豎向的分欄菜單,實現這種效果需藉助與第三方庫(當然也可以自己封裝)。

       [擴充] 第三方庫實現豎向分欄控制器 FSVerticalTabBarController

                https://github.com/futuresimple/FSVerticalTabBarController

                此庫實現了一個類似iOS原生UITabBarController的分欄效果,只不過是豎向的。

       [*擴充*] 對於iPhone下的分欄控制器,若要顯示不規則尺寸的tabBarItem,則需要自訂實現,例如某個分欄的尺寸比其他的分欄都大,特別是中間的,凸出效果的。

                可參考:http://code4app.com/ios/自訂不規則TabBar/51886eee6803faf053000003

     > 鍵盤

        iPad的虛擬鍵盤右下角多了個退出鍵盤的按鈕

                     

     > iPad特有的類

        UIPopoverController 彈出控制器

        UISplitViewController 主從視圖控制器[自iOS8開始,此類也可以在iPhone應用中使用]

     > 部分共有API的差異

        同樣的類在iPhone和iPad上的顯示效果會略有不同,但大部分還是一致的。

     > 螢幕方向的支援

        在建立工程後,在info.plist中查看會發現iPhone下支援三種方向,而iPad下支援四種方向。

                       

     > 橫豎屏支援建議

        一般情況下iPhone應用支援一種螢幕方向即可,豎屏 or 橫屏。

        iPad應用最好支援橫屏,豎屏兩種方向,也是官方建議。但不強制,根據實際開發業務需求選擇。

     > 工程運行裝置選擇

        在建立工程時,會有Device選擇有三個值:

         Universal  通用 iPhone iPad的都可運行

         iPhone     

         iPad

         若選擇iPhone,也仍然要考慮在iPad上運行是否正常。蘋果官方其中一條審核規則:在iPhone上啟動並執行應用必須同樣也能在iPad上可運行正常。一般就選擇Universal。

         若應用只在iPad上運行,則選擇iPad.

      > 開發流程

         iPhone與iPad的開發流程是一致的,在 iPhone上所學的所有知識基本都可以應用在iPad上。 

       

3. UISplitViewController

  主-從(master-detail)[內容] 檢視控制器。在此介面中,在主視圖控制器上的改變會驅動從視圖控制器的內容改變,這兩個視圖控制器是並列顯示的。常應用於iPad 應用中,一般作為window的根視圖控制器rootViewController。自iOS8開始,此類也可以在iPhone應用中使用

   純程式碼方式實現:

   注意:在刪除Main.storyboard檔案後,需要在info.plist中將 Main storyboard file base name 項刪除,否則程式崩潰報錯,提示找不到Main....

   > 初始化

      [[UISplitViewController alloc] init]

   > 設定主,從視圖控制器

      splitViewController.viewControllers = @[masterViewController,detailViewController];

      該屬性包含兩個視圖控制器,第一個是主視圖控制器,第二個是詳細/從視圖控制器

 > 設定顯示模式

   splitViewController.preferredDisplayMode 

      值如下:

      UISplitViewControllerDisplayModeAutomatic,       // 自動模式,自行根據裝置尺寸決定合適的顯示方式,

       UISplitViewControllerDisplayModePrimaryHidden, // 主視圖控制器隱藏

       UISplitViewControllerDisplayModeAllVisible,         // 主,從視圖控制器並列顯示

       UISplitViewControllerDisplayModePrimaryOverlay // 主視圖控制器覆蓋在從視圖控制器上顯示

      擷取顯示模式

      splitViewController.displayMode    // 注意只能擷取到上述四值中的後三種

   > 設定主視圖控制器的顯示尺寸比例

      splitViewController.preferredPrimaryColumnWidthFraction // 注意此屬性的值範圍在0.0~1.0區間,如0.2 表示主視圖控制器在splitViewController中所佔的顯示比例為20%。

      擷取主視圖控制器的顯示尺寸(點數)

      splitViewController.primaryColumnWidth 

   > 顯示指定的從視圖控制器,一般在主視圖控制器點擊後觸發

      [splitViewController showDetailViewController: sender:]

      其中參數一表示要顯示的從視圖控制器,參數二表示是哪個視圖或視圖控制器產生的此請求

   > 顯示指定的主視圖控制器

      [splitViewController showViewController: sender:]

      參數一表示要顯示的主視圖控制器,參數二表示由哪個對象請求顯示

   >  設定是否將一個隱藏的視圖控制器通過撥動手勢顯示或隱藏

      splitViewController.presentsWithGesture

       注意只有在有隱藏視圖控制器時有效

4. UIPopoverController

    彈出控制器,以懸浮框的形式模態展現一個視圖控制器的內容。

    此類自iOS9被棄用,popover的效果通過視圖控制器模態跳轉方式實現,指定跳轉的視圖控制器的 modal presentation style 為 UIModalPresentationPopover, 且配合UIPopoverPresentationController的相關屬性設定。

    - iOS9之前popover實現:UIPopoverController的使用

    > 準備彈出視圖的控制器並初始化UIPopoverController

      [ [UIPopoverController alloc] initWithContentViewController: ]

    > 在指定的某一塊特定地區彈出顯示

      [popoverController presentPopoverFromRect: inView: permittedArrowDirections: animated: ];

       參數一: 指定的矩形框(箭頭所指)範圍,以參數二view的左上方為座標原點

    參數二: 參數一的座標原點的相對view

    參數三: 箭頭方向: 決定了彈出視圖的方向,若在指定方向上空間不夠,則會導致彈出視圖的尺寸無效

    參數四: 是否動畫顯示

        其中參數一,二的設定效果如下:

               

      若在使用了導航條的視圖中,要在導航條左側或右側按鈕點擊後顯示popover效果,則可使用以下方法:

      [popoverController presentPopoverFromBarButtonItem: permittedArrowDirections: animated: ]

     > 設定背景顏色(最好設定的與彈出內容背景顏色一致,預設的是白色)

        popoverController.backgroundColor

     > 設定彈出內容的尺寸

        [popoverController setPopoverContentSize: ];

        ***但一般不建議使用此方式設定彈出視圖的尺寸,其尺寸應該由內容視圖決定,應在彈出視圖的控制器中設定 preferredContentSize 屬性

     

     - iOS9 popover實現:

     > 準備彈出視圖的控制器,並設定其模態彈出方式

        contentVC.modalPresentationStyle = UIModalPresentationPopover; // 指定模態彈出窗的樣式

        [擴充補充] contentVC.modalTransitionStyle  // 模態視窗顯示時的動畫

     > 設定彈出視圖控制器的彈出屬性    

        // 箭頭所指地區的座標原點的相對視圖

        contentVC.popoverPresentationController.sourceView = self.view;

        // 箭頭所指地區尺寸

        contentVC.popoverPresentationController.sourceRect = uv.frame;

        // 彈出視圖的背景色

        contentVC.popoverPresentationController.backgroundColor = [UIColor redColor];

        // 箭頭方向

        contentVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;

        // 模態方式彈出視圖

        [self presentViewController:contentVC animated:YES completion:nil];

        

 

    

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.