iOS11適配

導(dǎo)航欄的高度的適配

iOS 11以前,狀態(tài)欄statusBar的高度是20,底部tabbar的高度是49。
iOS 11之后,狀態(tài)欄的statusBar的高度變成了44, 底部的tabbar變成了83
所以建議還是抽取成宏。 

安全區(qū)域的問(wèn)題

iOS 11之前, automaticallyadjustsscrollviewinsets經(jīng)常被設(shè)置成NO,由開發(fā)者去控制處理留白和坐標(biāo)問(wèn)題。
iOS 11后,把這個(gè)automaticallyadjustsscrollviewinsets廢棄,新增了contentInsetAdjustmentBehavior,它是個(gè)枚舉類型的值,我們只需要把其設(shè)置成never就行了

tableview的組頭和組尾高度變大問(wèn)題

我們需要在初始化的把這三屬性設(shè)置成0即可( estimatedRowHeight、 estimatedSectionHeaderHeight estimatedSectionFooterHeight)

導(dǎo)航欄標(biāo)題titleview的問(wèn)題

iOS 11中會(huì)出現(xiàn)蜷縮成一起的現(xiàn)象  不過(guò)它現(xiàn)在支持autolayout。所以我們需要把它擴(kuò)展出去, 只需要在你自定義的titleview中實(shí)現(xiàn)

- (CGSize)intrinsicContentSize {
    return UILayoutFittingExpandedSize;
}

定位相關(guān)

問(wèn)題描述:無(wú)法定位,而且程序在安裝后第一次訪問(wèn)定位權(quán)限時(shí),無(wú)定位權(quán)限提示對(duì)話框彈出。 
原因:iOS11 定位相關(guān)的權(quán)限做了更改,在iOS11上使用了新的定位權(quán)限key。 
解決方案: 
如果原來(lái)申請(qǐng)的權(quán)限是始終允許NSLocationAlwaysUsageDescription,那么需要在保留原來(lái)的key的基礎(chǔ)上增加NSLocationWhenInUseUsageDescription和NSLocationAlwaysAndWhenInUsageDescription。

具體參考另篇博客:http://blog.csdn.net/dangyalingengjia/article/details/77965029

系統(tǒng)相冊(cè)相關(guān)

問(wèn)題描述:iOS11上讀寫相冊(cè)的照片時(shí)發(fā)生崩潰。 
原因:由于相冊(cè)相關(guān)權(quán)限的key發(fā)生了變化。用戶在沒(méi)有權(quán)限的情況下,訪問(wèn)相冊(cè)導(dǎo)致崩潰。 
解決方案: 
iOS11之前相冊(cè)對(duì)應(yīng)的key是NSPhotoLibraryUsageDescription,iOS11對(duì)應(yīng)的Key是NSPhotoLibraryAddUsageDescription。同定位的Key一樣,由于key沒(méi)有兼容性,所以需要保留原key以兼容iOS10及之前版本。

關(guān)于UIScrollView初始位置變化的問(wèn)題

由于iOS11廢棄了UIViewController的automaticallyAdjustsScrollViewInsets屬性,位置需要手動(dòng)調(diào)整。 
iOS11中為UIScrollView新增了contentInsetAdjustmentBehavior屬性,結(jié)合UIAppearance協(xié)議,可以統(tǒng)一在appDelegate的didFinishLaunchingWithOptions的最開始增加:

if #available(iOS 11.0, *) {
    UIScrollView.appearance().contentInsetAdjustmentBehavior = .never
}

注意

如果你需要做一個(gè)嵌套WebView的畫面,直接將WebView加到self.view中時(shí),那就需要對(duì)WebView的ScrollView進(jìn)行單獨(dú)處理:

UIScrollView.appearance().contentInsetAdjustmentBehavior = .automatic
對(duì)于系統(tǒng)的相冊(cè)選擇視圖UIImagePickerController,需要單獨(dú)處理:
再打開系統(tǒng)相冊(cè)前設(shè)定:
UIScrollView.appearance().contentInsetAdjustmentBehavior = .automatic
從相冊(cè)返回后設(shè)定:
UIScrollView.appearance().contentInsetAdjustmentBehavior = .never

第三方庫(kù)WKWebViewJavascriptBridge

問(wèn)題描述:在WKWebView的回調(diào)函數(shù)中崩潰:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)

原因:WKWebViewJavascriptBridge內(nèi)部邏輯問(wèn)題

解決方案:WKWebViewJavascriptBridge最新的6.0.2上仍然沒(méi)有解決這個(gè)問(wèn)題,可以參考github issue#272

只能手動(dòng)修改源文件,將WKWebViewJavascriptBridge.m 的L153的if改為 else if

修改后:????????????????????????修改前:

WKWebView

UIVisualEffectView相關(guān)的崩潰

iOS11之前可以將UIView直接加到(addSubview)UIVisualEffectView上面,但是在iOS11上面這么做會(huì)導(dǎo)致crash。

正確的姿勢(shì)是:將UIViewaddSubview到UIVisualEffectView的contentView上。

關(guān)于上傳商店相關(guān)改變

之前沒(méi)有1024*1024的icon,同樣可以提交商店審核,但是現(xiàn)在不行了。你會(huì)在用Application Loader上傳完成后收到一個(gè)warning,但是在提交審核(包括beta測(cè)試版本)時(shí)被告知不允許提交。
上傳被拒

`

而且注意,這個(gè)1024的圖片一定要去掉alpha通道。可以在github上搜索Alpha-Channel-Remover,用這個(gè)工具去掉alpha通道。

iPhone X機(jī)型判斷

目前還不知道iPhone X的Devive Model,可以拿分辨率來(lái)判斷。
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125,
 2436), [[UIScreen mainScreen] currentMode].size) : NO)

Color適配

iPhone X支持P3色彩空間,從而產(chǎn)生更豐富,比sRGB更飽和的顏色。
+(UIColor*)colorWithDisplayP3Red:(CGFloat)displayP3Red
 green:(CGFloat)green
 blue:(CGFloat)blue
 alpha:(CGFloat)alpha
NS_AVAILABLE_IOS(10_0);


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

http://blog.csdn.net/dangyalingengjia/article/details/77964582?utm_source=5ibc.net&utm_medium=referral

http://blog.csdn.net/liqunzhang/article/details/78031641

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容