iOS10和Xcode8適配整理

*摘抄于網(wǎng)絡各路大神 — — *

一贞让、iOS10 適配問題

1. 系統(tǒng)判斷版本方法

//值為 1
[[[[UIDevice currentDevice] systemVersion] substringToIndex:1] integerValue]
//值為10.000000
[[UIDevice currentDevice] systemVersion].floatValue,
//值為10.0
[[UIDevice currentDevice] systemVersion]

2. UserNotifications(用戶通知)變化

iOS 10 開始的通知

1.所有相關(guān)通知被統(tǒng)一到了UserNotifications.framework框架中。

2.增加了撤銷拳球、更新、中途還可以修改通知的內(nèi)容葵袭。

3.通知不在是簡單的文本了沉颂,可以加入視頻、圖片剿骨,自定義通知的展示等等。

4.iOS 10相對之前的通知來說更加好用易于管理埠褪,并且進行了大規(guī)模優(yōu)化浓利,對于開發(fā)者來說是一件好事。

5.iOS 10開始對于權(quán)限問題進行了優(yōu)化钞速,申請權(quán)限就比較簡單了(本地與遠程通知集成在一個方法中)贷掖。

3. ATS的問題

iOS 9中默認HTTP的網(wǎng)絡是不推薦使用的,當然我們也可以把NSAllowsArbitraryLoads設置為YES禁用ATS渴语。不過iOS 10從2017年1月1日起蘋果不允許我們通過這個方法跳過ATS苹威,也就是說強制我們用HTTPS,如果不這樣的話提交App可能會被拒絕驾凶。但是我們可以通過NSExceptionDomains來針對特定的域名開放HTTP可以容易通過審核牙甫。

4. iOS 10 隱私權(quán)限設置

iOS 10 開始對隱私權(quán)限更加嚴格,如果你不設置就會直接崩潰调违,現(xiàn)在很多遇到崩潰問題了窟哺,一般解決辦法都是在info.plist文件添加對應的Key-Value就可以了。

以上Value值技肩,圈出的紅線部分的文字是展示給用戶看的且轨,需要自己添加規(guī)范的提示說明,不能為空虚婿。

5. UIStatusBar的問題

在iOS10中,如果還使用以前設置UIStatusBar類型或者控制隱藏還是顯示的方法,會報警告,方法過期,要想修改UIStatusBar的樣式或者狀態(tài)使用下面所示的屬性或方法:

@property(nonatomic, readonly) UIStatusBarStyle preferredStatusBarStyle  

@property(nonatomic, readonly) BOOL prefersStatusBarHidden

- (UIStatusBarStyle)preferredStatusBarStyle 

- (BOOL)prefersStatusBarHidden 

- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation

6. iOS 10項目中有的文字顯示不全問題

英文字母會不會也有這種問題殖告,我又通過測試,后來發(fā)現(xiàn)英文字母沒有問題雳锋,只有漢字有問題。目前只有一個一個修改控件解決這個問題羡洁,暫時沒有其他好辦法來解決玷过。

  1. iOS 10 ImagePickerController.cameraViewTransform問題

很多人反映自定義相機出現(xiàn)了問題,cameraViewTransform不能用了,其實網(wǎng)上關(guān)于這個的資料不是很多辛蚊,在這里提供參考辦法如下:

//#import <AVFoundation/AVFoundation.h>
  //監(jiān)聽
   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cameraNotification:) name:AVCaptureSessionDidStartRunningNotification object:nil];
  //監(jiān)聽方法
  - (void)cameraNotification:(NSNotification *)notification {
    dispatch_async(dispatch_get_main_queue(), ^{
          // 這里實現(xiàn)
          imagePickerController.cameraViewTransform = CGAffineTransformMakeTranslation(50,  50);
      });
  }
 

看來UIImagePickerController視乎不在適用于iOS 10了粤蝎。所以說可以選擇AVFoundation來解決這個問題。

8. 代碼及Api注意

使用Xcode8之后袋马,有些代碼可能就編譯不過去了初澎,具體我就說說我碰到的問題。
1.UIWebView的代理方法:


**注意要刪除NSError前面的 nullable虑凛,否則報錯碑宴。
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error {

    [self hideHud];
}

二、Xcode 8 變動

1. Xcode 8 運行一堆沒用的logs解決辦法

解決辦法是設置 OS_ACTIVITY_MODE : disable如下圖:

2. Xcode 8代碼注釋不能用的解決辦法

這個是因為蘋果解決xcode ghost桑谍,把插件屏蔽了延柠。

解決辦法(fix method):

打開終端,命令運行:sudo /usr/libexec/xpccachectl

重啟電腦后生效

3. Xcode 8使用Xib awakeFromNib的警告問題

應該明確的加上[super awakeFromNib];

4. 屏蔽雜亂無章的bug

更新Xcode8之后锣披,新建立工程贞间,都會打印一堆莫名其妙看不懂的Log.

屏蔽的方法如下:

Xcode8里邊 Edit Scheme-> Run -> Arguments, 在Environment Variables里邊添加

OS_ACTIVITY_MODE = Disable

5.自動管理證書

用Xcode8打開工程后,比較明顯的就是下圖了雹仿,這個是蘋果的新特性增热,可以幫助我們自動管理證書,在Xcode的偏好設置中胧辽,添加蘋果賬號峻仇,即可。票顾。


6.Xib文件的注意事項

使用Xcode8打開xib文件后础浮,會出現(xiàn)下圖的提示。


大家選擇Choose Device即可奠骄。
之后大家會發(fā)現(xiàn)布局啊豆同,frame亂了,只需要更新一下frame即可含鳞。如下圖

注意:如果按上面的步驟操作后影锈,在用Xcode7打開Xib會報一下錯誤

解決辦法:需要刪除Xib里面<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>這句話,以及把< document >中的toolsVersion和< plugIn >中的version改成你正常的xib文件中的值
蝉绷,不過不建議這么做鸭廷,在Xcode8出來后,希望大家都快速上手熔吗,全員更新辆床。

三、一些改動

1. UIColor的問題

官方文檔中說:大多數(shù)core開頭的圖形框架和AVFoundation都提高了對擴展像素和寬色域色彩空間的支持.通過圖形堆棧擴展這種方式比以往支持 廣色域的顯示設備更加容易∥荩現(xiàn)在對UIKit擴展可以在sRGB的色彩空間下工作讼载,性能更好,也可以在更廣泛的色域來搭配sRGB顏色.如果你的項目中是 通過低級別的api自己實現(xiàn)圖形處理的,建議使用sRGB,也就是說在項目中使用了RGB轉(zhuǎn)化顏色的建議轉(zhuǎn)換為使用sRGB,在UIColor類中新增了 兩個api:

- (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);  

+ (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);  

2. 真彩色的顯示

真彩色的顯示會根據(jù)光感應器來自動的調(diào)節(jié)達到特定環(huán)境下顯示與性能的平衡效果,如果需要這個功能的話,可以在info.plist里配置(在Source Code模式下): UIWhitePointAdaptivityStyle

3. UITextField 類型判斷

在iOS 10 中,UITextField新增了textContentType字段,是UITextContentType類型,它是一個枚舉,作用是可以指定輸入框 的類型,以便系統(tǒng)可以分析出用戶的語義.是電話類型就建議一些電話,是地址類型就建議一些地址.可以在#import 文件中,查看 textContentType字段

4. UICollectionViewCell的的優(yōu)化

在iOS 10 之前,cell只能從重用隊列里面取出,再走一遍生命周期,并調(diào)用cellForItemAtIndexPath創(chuàng)建或者生成一個cell.
在iOS 10 中,系統(tǒng)會cell保存一段時間,也就是說當用戶把cell滑出屏幕以后,如果又滑動回來,cell不用再走一遍生命周期了,只需要調(diào)用willDisplayCell方法就可以重新出現(xiàn)在屏幕中了.
iOS 10 中,系統(tǒng)是一個一個加載cell的,而以前是一行一行加載的,這樣就可以提升很多性能; 并且新增加的Pre-Fetching預加載轿秧,對UITableViewCell同樣適用。

5. UIRefreshControl的使用

在iOS 10 中, UIRefreshControl可以直接在UICollectionViewUITableView中使用,并且脫離了UITableViewController現(xiàn)在RefreshControlUIScrollView的一個屬性.

6. iOS 10 字體隨著手機系統(tǒng)字體而改變

當我們手機系統(tǒng)字體改變了之后咨堤,那我們App的label也會跟著一起變化菇篡,這需要我們寫很多代碼來進一步處理才能實現(xiàn),但是iOS 10 提供了這樣的屬性adjustsFontForContentSizeCategory來設置一喘。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驱还,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凸克,更是在濱河造成了極大的恐慌议蟆,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件触徐,死亡現(xiàn)場離奇詭異咪鲜,居然都是意外死亡,警方通過查閱死者的電腦和手機撞鹉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門疟丙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸟雏,你說我怎么就攤上這事享郊。” “怎么了孝鹊?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵炊琉,是天一觀的道長。 經(jīng)常有香客問我又活,道長苔咪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任柳骄,我火速辦了婚禮团赏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耐薯。我一直安慰自己舔清,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布曲初。 她就那樣靜靜地躺著体谒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪臼婆。 梳的紋絲不亂的頭發(fā)上抒痒,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音颁褂,去河邊找鬼评汰。 笑死纷捞,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的被去。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼奖唯,長吁一口氣:“原來是場噩夢啊……” “哼惨缆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丰捷,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤坯墨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后病往,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捣染,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年停巷,在試婚紗的時候發(fā)現(xiàn)自己被綠了耍攘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡畔勤,死狀恐怖蕾各,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庆揪,我是刑警寧澤式曲,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站缸榛,受9級特大地震影響吝羞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜内颗,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一钧排、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧起暮,春花似錦卖氨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纸厉,卻和暖如春系吭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颗品。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工肯尺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沃缘,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓则吟,卻偏偏與公主長得像槐臀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子氓仲,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容