# iOS 11 適配 、Xcode 9 配置皿桑、 iPhoneX適配總結

一直寫好了沒有發(fā)布出來蔬啡,現(xiàn)在抽空把它完善下,總結下自己對于iOS 11相關的適配 此刻有空正好把前段時間適配iOS 11 和iPhoneX 相關的一些技術點和適配更新與大家分享下箱蟆,如有不明確或者是不對的地方可以留言指正,謝謝空猜!

iOS11中新增了以下的Key:

》 NFCReaderUsageDescription
》 NSFaceIDUsageDescription
》 NSPhotoLibraryAddUsageDescription
如果你的App使用到了NFC、FaceID辈毯、保存圖片的功能,記得添加相應的Key钝凶。

iOS10上圖庫的訪問和寫入權限依然依賴于NSPhotoLibraryUsageDescriptionKey唁影,如果在iOS10上只添加了NSPhotoLibraryAddUsageDescription而沒有添加NSPhotoLibraryUsageDescription耕陷,當訪問圖庫或者保存圖片時應用依然會發(fā)生Crash
iOS11上只要添加了NSPhotoLibraryAddUsageDescription即具備圖庫的訪問和寫入權限据沈,無需增加NSPhotoLibraryUsageDescription
iOS11上即使不添加NSPhotoLibraryUsageDescription和NSPhotoLibraryAddUsageDescription也可以通過UIImagePickerController來訪問圖庫(其他API方式未測試,真機和模擬器均可訪問到圖庫數(shù)據(jù))卓舵,也不知道是否是Bug,居然不需要申請權限就可以訪問系統(tǒng)圖片裹虫。
綜上所述,如果App需要兼容iOS10筑公,則添加NSPhotoLibraryUsageDescription和NSPhotoLibraryAddUsageDescription尊浪,如果只兼容iOS11則只添加NSPhotoLibraryAddUsageDescription即可匣屡。

iOS 11 UITableView 小更新

iOS 中 UITableView 中有一種比較常用的樣式 UITableViewStyleGrouped。有時我們要隱去 section 頭尾的話誉结,經(jīng)常實現(xiàn)如下:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 0.1f;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 0.1f;
}

如果只實現(xiàn)這2段代碼的話券躁,在 iOS 11 之前是不會出現(xiàn)問題的,但 iOS 11 之后需要同時實現(xiàn)如下也拜,因為iOS11,tableview系統(tǒng)默認開啟了Self-Sizing:

   - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
   {
      return nil;
   }
       
   -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
   {
      return nil;
}

或者是

   self.estimatedRowHeight = 0;
   self.estimatedSectionHeaderHeight = 0;
   self.estimatedSectionFooterHeight = 0;

跳轉App Store評論變更

iOS11以前:

- (void)goToAppStore
{
 NSString *itunesurl = @"[http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=XXXXXXXX&pageNumber=0&sortOrdering=2&type=Purple](http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=XXXXXXXX&pageNumber=0&sortOrdering=2&type=Purple)+Software&mt=8";
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:itunesurl]]; 
}

iOS11之后:

- (void)goToAppStore 
{
NSString *itunesurl = @
"itms-[apps://itunes.apple.com/cn/app/idXXXXXX?mt=8&action=write-review](apps://itunes.apple.com/cn/app/idXXXXXX?mt=8&action=write-review)";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:itunesurl]];
}

iPhoneX 適配

LaunchImage 中添加一個和 iPhone X 相關的啟動圖片
圖片尺寸:1125 * 2436

iphoneX.png
Status Bar

iPhone X 上的 StatusBar 高度比之前的 iPhone 高一些蔓钟,也就是說卵贱,我們如果寫死20pt高度的 frame 布局奋刽,都要大面積修(tu)改(xue)艰赞。在 iPhone X 上,通過打印 [[UIApplication sharedApplication] statusBarFrame] 可以看到方妖,高度是44pt。

屏幕底部

因為沒有了 Home 鍵雌澄,iPhone X 的底部是預留給系統(tǒng)功能的一個區(qū)域 - Home Indicator杯瞻,這部分的高度是34pt镐牺。 這就導致了zhnegnev

1.首先簡單定義一下IPoneX

#define IPHONE_X (Screen_Height == 812.0f) ? YES : NO

2.簡單了解下IPhoneX 導航欄 狀態(tài)欄 tabar高度
1.導航欄高度 88 非非IPoneX手機為64

2.狀態(tài)欄高度44 非IPoneX手機為20

3.tabar高度83 非IPhoneX手機為49

WX20171128-135105@2x.png

Xcode

Xcode 9支持開啟多個模擬器

在使用模擬器過程中,相信大家都發(fā)現(xiàn)選擇不同的模擬器運行可以同時運行睬涧,不會把之前的模擬器給擠退掉,這個功能的更新方便了開發(fā)者去適配不同設備的UI畦浓,不過,開啟多個模擬器的代價是會影響到電腦的速度讶请。

不同模擬器下App的顯示效果(如下圖)

多個模擬器.png

可以在模擬器的Hardware->Device中啟動新的模擬器(如下圖)

多開模擬器.png

Xcode 9全屏模式下與模擬器分屏

在Xcode 9之前屎媳,如果Xcode是全屏模式论巍,那么使用模擬器時會有些不方便风响,看效果時需要切換屏幕很累的。給力的是在Xcode 9中钞诡,添加了一個新功能湃崩,即在全屏模式下,可以和模擬器在同一屏幕上分屏操作攒读,如下圖所示。

// 模擬器全屏


模擬器設置全屏.png

在模擬器設置中需要模擬器開啟“允許全屏模式”薄扁,只需要勾選上Internal->Allow Fullscreen Mode,再把模擬器拖入Xcode所在屏幕即可脱盲。如下圖所示。

// 模擬器設置全屏


模擬器全屏.png

無線真機調試

之前如若要真機調試必須要連接數(shù)據(jù)線钱反,現(xiàn)在方便了匣距,可以通過WIFI無線安裝App了面哥,
不過需要Xcode9并且運行iOS11+的版本才能使用毅待,
還有就是Mac和iPhone必須連接同一個WiFi網(wǎng)絡。
操作如下:

  1. 用數(shù)據(jù)線連接Mac和iPhone
  2. 選擇Xcode menu的Window -> Devices and Simulator
無線模擬器1.png
  1. 勾選Connect via network如果通過網(wǎng)絡成功連接到iPhone吱涉,就可以拔掉數(shù)據(jù)線愉快的進行無線真機調試
    同時也可以通過輸入iPhone的IP進行連接外里。

小技巧

開始大家可能會覺得不方便邑飒,對于想直接跳轉到變量定義,現(xiàn)在是 control+command+單擊
當然,如果你還是覺得以前的cmd+單擊 跳轉到變量定義,你更習慣,可以在這里設置一下就變?yōu)樵瓉淼姆绞搅恕?/p>

![小技巧.jpeg](http://upload-images.jianshu.io/upload_images/300732-8ff0722e68b1153e.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末疙咸,一起剝皮案震驚了整個濱河市风科,隨后出現(xiàn)的幾起案子撒轮,更是在濱河造成了極大的恐慌,老刑警劉巖题山,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玖姑,居然都是意外死亡慨菱,警方通過查閱死者的電腦和手機焰络,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門符喝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人畏腕,你說我怎么就攤上這事∶柘冢” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵流昏,是天一觀的道長吞获。 經(jīng)常有香客問我,道長各拷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任烤黍,我火速辦了婚禮,結果婚禮上速蕊,老公的妹妹穿的比我還像新娘。我一直安慰自己跟啤,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布隅肥。 她就那樣靜靜地躺著,像睡著了一般腥放。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秃症,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音岗仑,去河邊找鬼。 笑死赔蒲,一個胖子當著我的面吹牛泌神,可吹牛的內容都是我干的。 我是一名探鬼主播欢际,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼患久!你這毒婦竟也來了浑槽?” 一聲冷哼從身側響起蒋失,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤桐玻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后镊靴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡煮落,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年踊谋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡骗村,死狀恐怖,靈堂內的尸體忽然破棺而出胚股,到底是詐尸還是另有隱情,我是刑警寧澤琅拌,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布摘刑,位于F島的核電站进宝,受9級特大地震影響枷恕,放射性物質發(fā)生泄漏。R本人自食惡果不足惜徐块,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胡控。 院中可真熱鬧,春花似錦庇绽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辟狈。三九已至,卻和暖如春上陕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背释簿。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工硼莽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留庶溶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓行疏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酿联。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內容

  • 傍晚6,7點樣子贞让,和什么人一起去過河柳譬,好像是自己的孩子也好像是自己的弟弟,這兩個人在夢里老是混淆的美澳。不清楚原因,懷...
    夢里瘋閱讀 201評論 0 0
  • 導入模塊: from pandas import DataFrame import pandas as pd im...
    周倜吉閱讀 4,431評論 0 3
  • 記拙俗!不要為了任何人改變你自己江咳!你就是你逢净,不需要改變,也不要總想著為他改變爹土,如果他真的愛你,無論你怎么樣胀茵,他都會喜...
    南宮雪嫣閱讀 393評論 0 0
  • 我先整理一下吧,不整理的話搞不好過兩天我自己都忘了樹的直徑是指一顆樹上距離最遠的兩個點之間的距離琼娘。也叫樹的最長路樹...
    陌路晨曦閱讀 1,290評論 0 0