成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓你的APP支持iPhone5

移動(dòng)開發(fā) iOS
去年國慶節(jié)前,為了支持iPhone5的屏幕分辨率(640象素 x 1136象素),我嘗試著升級(jí)粉筆網(wǎng)iPhone客戶端。整個(gè)過程花了大概一天的時(shí)間,我把這個(gè)過程總結(jié)下來,希望對(duì)大家有幫助。

升級(jí)準(zhǔn)備

為了支持iPhone5,我們首先需要準(zhǔn)備以下工具和資源:

  1. 下載***版的XCode4.5
  2. 讓美術(shù)同學(xué)提供640 x 1136分辨率的啟動(dòng)畫面,640 x 1136分辨率的程序截圖(用于在app store中顯示)
  3. 由于iPhone5使用的A6處理器采用了新的armv7s架構(gòu),所以如果你使用了第三方的靜態(tài)鏈接庫,需要下載對(duì)應(yīng)支持armv7s的版本。我們由于使用了第三方的數(shù)據(jù)統(tǒng)計(jì)工具Flurry,所以下載更新了Flurry的靜態(tài)鏈接庫。
  4. 如果你的顯示器分辨率太小,將無法顯示完整的iPhone5模擬器,可選的解決辦法是換個(gè)更大的顯示器或者把顯示器豎起來,象我這樣:

[[70678]]

另外還有一個(gè)簡(jiǎn)單的辦法,可以在啟動(dòng)模擬器后,用快捷鍵command+3(50%),command+2(75%), command+1(100%),來調(diào)整模擬器的顯示比例,謝謝Superrr一一 提供的方法,比我的簡(jiǎn)單多了。

具體升級(jí)步驟如下

升級(jí)啟動(dòng)畫面和第三方鏈接庫

升級(jí)啟動(dòng)畫面,將美術(shù)同學(xué)提供的640 x 1136分辨率的啟動(dòng)畫面圖片,命名為Default-568h@2x.png,添加到工程中即可。

升級(jí)第三方鏈接庫,這個(gè)只需要用新的第三方鏈接庫替換掉以前的即可。如果你使用了例如opencv這種需要自己編譯對(duì)應(yīng)版本鏈接庫的開源庫,那么替換之前,需要自己先用xcode4.5編譯其armv7s版本的靜態(tài)鏈接庫。

調(diào)整xib文件

粉筆網(wǎng)客戶端的界面基本上都是頂部是UINavigationBar, 底部是UITabBar或UIToolBar,中間是UITableView。

對(duì)于這一類界面,調(diào)整起來非常簡(jiǎn)單,只需要將UITableView設(shè)置成高度自動(dòng)擴(kuò)展的Autosizing方式,如下圖所示:

對(duì)于底部的UIToolBar,Autosizing設(shè)置成靠底部對(duì)齊的方式即可。如下圖所示:

代碼調(diào)整

有一些界面元素的位置是用代碼來設(shè)置的,例如“發(fā)表筆記”界面中浮動(dòng)貼在輸入法鍵盤上面的各種可選操作的UIToolbar。因?yàn)殒I盤的高度在不同的輸入法下是不一樣的,所以需要用代碼動(dòng)態(tài)調(diào)整。

我的調(diào)整代碼如下:

  1. // 說明:keyboardWillShow函數(shù)和keyboardWillHide函數(shù)分別監(jiān)聽了 
  2. // UIKeyboardWillShowNotification和UIKeyboardWillHideNotification 
  3. - (void) keyboardWillShow:(NSNotification *)notification { 
  4.     NSDictionary * info = [notification userInfo]; 
  5.     CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; 
  6.     float textViewHeight = UI_SCREEN_HEIGHT - UI_STATUS_BAR_HEIGHT - UI_NAVIGATION_BAR_HEIGHT - UI_TOOL_BAR_HEIGHT - kbSize.height; 
  7.     [UIView animateWithDuration:0.3 animations:^{ 
  8.         _textView.frame = CGRectMake(0, UI_NAVIGATION_BAR_HEIGHT, UI_SCREEN_WIDTH, textViewHeight); 
  9.         _toolbar.frame = CGRectMake(0, UI_NAVIGATION_BAR_HEIGHT + textViewHeight, UI_SCREEN_WIDTH, UI_TOOL_BAR_HEIGHT); 
  10.     }]; 
  11. - (void) keyboardWillHide:(NSNotification *)notification { 
  12.     CGSize kbSize = CGSizeMake(320216); 
  13.     float textViewHeight = UI_SCREEN_HEIGHT - UI_STATUS_BAR_HEIGHT - UI_NAVIGATION_BAR_HEIGHT - UI_TOOL_BAR_HEIGHT - kbSize.height; 
  14.     [UIView animateWithDuration:0.3 animations:^{ 
  15.         _textView.frame = CGRectMake(0, UI_NAVIGATION_BAR_HEIGHT, UI_SCREEN_WIDTH, textViewHeight); 
  16.         _toolbar.frame = CGRectMake(0, UI_NAVIGATION_BAR_HEIGHT + textViewHeight, UI_SCREEN_WIDTH, UI_TOOL_BAR_HEIGHT); 
  17.     }]; 

可以看到,我將設(shè)備的各種高度都定義成了宏,這里的宏UI_SCREEN_HEIGHT表示整個(gè)設(shè)備的高度,以前這個(gè)宏的值是固定的480,現(xiàn)在因?yàn)?iPhone5中高度值變了,所以我們將這個(gè)宏定義改成了如下的值,這樣,所有相關(guān)的用代碼實(shí)現(xiàn)的界面位置調(diào)整都搞定了。我的UI相關(guān)的宏定義如下:

  1. #define UI_NAVIGATION_BAR_HEIGHT        44 
  2. #define UI_TOOL_BAR_HEIGHT              44 
  3. #define UI_TAB_BAR_HEIGHT               49 
  4. #define UI_STATUS_BAR_HEIGHT            20 
  5. #define UI_SCREEN_WIDTH                 320 
  6. // 將以下宏定義的值從480改成[[UIScreen mainScreen] bounds].size.height 
  7. #define UI_SCREEN_HEIGHT                ([[UIScreen mainScreen] bounds].size.height) 

如果你以前沒有將這些設(shè)備的高度值抽取成宏,我建議你通過查找替換,先將所有用到480的地方修改成宏,然后再增加上面的宏定義即可。

當(dāng)然,也有一些調(diào)整稍微復(fù)雜一些,例如粉筆網(wǎng)首頁的上拉加載更多,需要判斷上拉高度是否到達(dá)閾值,這些也是和設(shè)備高度相關(guān)的。這些閾值信息以前可能就直接寫成和高度相關(guān)的值,例如220什么的,這些通過直接查找480還沒法直接找到。

對(duì)于這些問題,只能是通過在模擬器中測(cè)試,發(fā)現(xiàn)問題,然后再把這些“Magic Number”替換成用上面提到的宏計(jì)算的公式。例如我們的上拉加載更多的閾值宏定義如下:

  1. #define LOAD_MORE_TEXT_HEIGHT 77 
  2. // 顯示文字閾值 
  3. #define LOAD_MORE_THRESHOLD (UI_SCREEN_HEIGHT - UI_STATUS_BAR_HEIGHT - UI_NAVIGATION_BAR_HEIGHT - UI_TAB_BAR_HEIGHT - LOAD_MORE_TEXT_HEIGHT) 
  4. // 刷新閾值 
  5. #define LOAD_MORE_MAX       (LOAD_MORE_THRESHOLD + 10.0) 

調(diào)整屏幕Rotation的回調(diào)函數(shù)

從iOS6開始,蘋果修改了屏幕旋轉(zhuǎn)的回調(diào)函數(shù)。在iOS6以前,回調(diào)函數(shù)是

  1. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
  2.     return (interfaceOrientation == UIInterfaceOrientationPortrait); 

現(xiàn)在新的回調(diào)函數(shù)是:

  1. - (BOOL)shouldAutorotate { 
  2.     return YES; 
  3. - (NSInteger)supportedInterfaceOrientations { 
  4.     return UIInterfaceOrientationMaskAllButUpsideDown; 
  5. - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
  6.     return UIInterfaceOrientationPortrait; 

并且,現(xiàn)在是否旋轉(zhuǎn)屏幕是由最上層的View Controller決定。例如,如果你是由 UITabBarController或UINavigationController包起來的界面的話,是否旋轉(zhuǎn)屏幕就由 UITabBarController或UINavigationController中的shouldAutorotate回調(diào)決定,而默認(rèn)其返回的是 YES。修改方法是給這2個(gè)容器Controller增加Addition,將其shouldAutorotate修改成由當(dāng)前顯示的子view controller決定,或者直接默認(rèn)返回NO。

提交應(yīng)用

基本上就是以上這些調(diào)整工作了,完了之后用Xcode4.5編譯后提交審核,并且在itunes connect中設(shè)置iPhone5屏幕尺寸的app介紹截圖即可。業(yè)界傳言說對(duì)于支持iPhone5的程序,蘋果在應(yīng)用審核的時(shí)候會(huì)優(yōu)先進(jìn)行,我不知道 是否是真的,不過我們的應(yīng)用確實(shí)只用了5天時(shí)間就通過了審核,這是我個(gè)人遇到過的最快的一次審核。

責(zé)任編輯:閆佳明 來源: beyondvincent
相關(guān)推薦

2012-10-09 15:28:06

2013-07-23 07:34:54

iOS開發(fā)學(xué)習(xí)適配iphone5

2011-10-05 03:37:59

iPhone5iPhone 4S蘋果

2012-05-11 17:45:26

iPhone5概念機(jī)電腦管家安全

2015-10-10 11:38:10

ios9spotlight

2012-03-11 15:23:01

iPhone

2011-07-13 09:32:05

蘋果iOS 5

2013-07-31 11:06:26

青蘋果夏威夷版iPhoiPhone5定制版

2012-06-21 09:41:34

郭臺(tái)銘iPhone 5

2013-07-12 13:24:19

App誘惑

2012-04-25 23:00:05

App Store

2013-04-09 10:35:01

2011-03-29 09:14:46

WWDC蘋果iPhone

2013-03-22 13:10:20

3GS蘋果移動(dòng)應(yīng)用

2012-09-20 14:22:34

2011-10-11 10:22:54

iPhone5蘋果

2013-07-05 13:48:47

App

2013-09-12 10:11:57

蘋果iPhone 5ciPhone 5s

2011-05-03 10:07:12

iPhone5喬布斯蘋果

2012-04-23 21:54:31

智能手機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 99久久99久久精品国产片果冰 | 91精品国产一区二区三区香蕉 | 特级黄色毛片 | 欧美精品中文字幕久久二区 | 国产成人99久久亚洲综合精品 | 欧美激情综合五月色丁香小说 | 日韩精品一区二区在线 | 成人黄色电影在线观看 | 久草综合在线 | 国产日韩精品在线 | 久久久久久久久蜜桃 | 中文字幕在线网 | 日韩欧美一级片 | 一级高清视频 | 日韩av一区二区在线观看 | 午夜合集 | 亚洲精品短视频 | 久草网址 | 最新91在线 | 九九综合九九 | 日日操夜夜操天天操 | 精品一区在线免费观看 | 久久精品久久久 | 国产黄色小视频在线观看 | 成人一区二区三区视频 | 亚洲网站在线播放 | 麻豆av片 | 久久亚洲国产精品日日av夜夜 | 围产精品久久久久久久 | 欧美性久久 | 亚洲一区二区三区在线 | 精品产国自在拍 | 日韩视频一区二区 | 免费国产一区 | 91精品国产综合久久国产大片 | 亚洲 欧美 在线 一区 | 欧美精品久久久久久久久老牛影院 | 国产精品91视频 | 波多野结衣一区二区三区 | 国产视频在线观看一区二区三区 | 91精品国产综合久久久久 |