最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Xcode 9下適配iPhoneX導(dǎo)致iOS 10不兼容問題的解決方法

 更新時間:2018年04月25日 08:31:12   作者:頤和園  
這篇文章主要給大家介紹了關(guān)于Xcode 9下適配iPhoneX導(dǎo)致iOS 10不兼容問題的解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

前久發(fā)現(xiàn)測試組提交來一個 bug,說有的布局在 iOS 11 上正常,在 iOS 10 下不正常。分別在 iOS 11 模擬器和 iOS 10.3 模擬器上跑了一下 app,發(fā)現(xiàn)果然如此,如下圖所示:

iOS 11 下點擊“省市廣播站”,下級菜單中的按鈕正常顯示:

iOS 10 下點擊“省市廣播站”,下級菜單顯示為空白:

解決方法

檢查代碼,發(fā)現(xiàn)下級菜單中的按鈕是以手動布局方式動態(tài)添加到一個 scroll view 中的。添加時指定了按鈕的框架,框架計算完全正常,按鈕已經(jīng)添加在 scroll view 的 subviews 中了(可以在 LLDB 中用 po 命令確認(rèn) )。同時在打印 subviews 的過程中發(fā)現(xiàn),這些按鈕的 frame 并未被改變,仍然是 initWithFrame 時設(shè)定的值,但在 iOS 10.3 下就是不顯示,用視圖調(diào)試器也看不到。

百思不得其解。后來聯(lián)想到 Xcode 9 為了適配 iPhoneX 曾經(jīng)對自動布局約束進行了一些改變,比如“安全區(qū)”的概念,于是懷疑是新的 iOS SDK 對 ScrollView 的某些布局屬性進行了修改。

通過將兩種模擬器下的 scroll view 屬性進行打印后發(fā)現(xiàn),在 iOS 10/11 下,scroll view 的 contentInset 屬性是有所區(qū)別的。

在 iOS 11 中,contentInset 的值是 (0,0,0,0),而在 iOS 10 中卻變成了 (64,0,0,0)。

于是嘗試在代碼中加入了一句:

if ([UIDevice currentDevice].systemVersion.floatValue < 11.0) {
  _scrollBar.contentInset = UIEdgeInsetsZero;
 }

發(fā)現(xiàn)在 iOS 10 下菜單居然顯示了!

這種方式雖然在一定程度上解決了問題,但并不徹底,在測試中發(fā)現(xiàn),iOS 10 下的布局問題偶爾還是會出現(xiàn)(特別是 view controller 第一次加載時)。因為二級菜單需要進行一個網(wǎng)絡(luò)加載,這個加載的速度有可能快、有可能慢,那么當(dāng)?shù)谝淮雾撁骘@示完成之后,有可能二級菜單已經(jīng)顯示完了,自動布局引擎還沒有完成計算,它有可能再次修改 scroll view 的 contentInset 值,從在頁面第一次加載時,菜單顯示不出來。

要解決這個問題,必須思考其它方式。比如 UIScrollViewDelegate 協(xié)議。

首先將 view controller 聲明為實現(xiàn) UIScrollViewDelegate:

<UIScrollViewDelegate>

設(shè)置 scroll view 的 delegate 委托:

_scrollBar.delegate = self;

然后實現(xiàn) scrollViewDidScroll 委托方法:

// MARK: - UIScrollViewDelegate
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
 if (scrollView == _scrollBar && scrollView.contentOffset.y != 0){
  _scrollBar.contentInset = UIEdgeInsetsZero;
 }
}

運行 app,這次問題得到了完美解決。

注意:所有 UIScrollView 子類都有此問題。如果你是用 IB 進行布局,則在使用 Align to Edges 時,需要注意將四邊對齊于 superview,而不是默認(rèn)的 Safe Area,否則就會出現(xiàn)此問題。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • ios基礎(chǔ)教程之常見的數(shù)組使用方法

    ios基礎(chǔ)教程之常見的數(shù)組使用方法

    這篇文章主要給大家介紹了關(guān)于ios基礎(chǔ)教程之常見的數(shù)組使用方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • IOS UITableView和NavigationBar的常用設(shè)置詳解

    IOS UITableView和NavigationBar的常用設(shè)置詳解

    這篇文章主要介紹了IOS UITableView和NavigationBar的常用設(shè)置詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • iOS實現(xiàn)抖音點贊動畫效果

    iOS實現(xiàn)抖音點贊動畫效果

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)抖音點贊動畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • IOS Xcode調(diào)試常用命令和斷點整理

    IOS Xcode調(diào)試常用命令和斷點整理

    這篇文章主要介紹了IOS Xcode調(diào)試常用命令和斷點整理的相關(guān)資料,這里對IOS Xcode調(diào)試常用命令進行了總結(jié),需要的朋友可以參考下
    2016-12-12
  • IOS觀察者設(shè)計模式

    IOS觀察者設(shè)計模式

    什么是觀察者模式 什么是觀察者模式?你曾經(jīng)訂閱過報紙嗎?在訂閱報紙的時候,你不用去任何地方,只需要將你的個人地址信息以及訂閱信息告訴出版社,出版社就知道如何將相關(guān)報紙傳遞,本文給大家介紹ios觀察者模式,感興趣的朋友一起看看吧
    2015-12-12
  • swift3.0網(wǎng)絡(luò)圖片緩存原理簡析

    swift3.0網(wǎng)絡(luò)圖片緩存原理簡析

    這篇文章主要為大家簡析了swift3.0網(wǎng)絡(luò)圖片緩存原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • iOS獲取cell中webview的內(nèi)容尺寸

    iOS獲取cell中webview的內(nèi)容尺寸

    這篇文章主要介紹了iOS獲取cell中webview內(nèi)容尺寸,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 清除WKWebView cookies的方法

    清除WKWebView cookies的方法

    下面小編就為大家?guī)硪黄宄齏KWebView cookies的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 仿IOS的越界回彈效果和左右滑動功能

    仿IOS的越界回彈效果和左右滑動功能

    本文主要給大家講述了制作一個仿IOS的越界回彈效果和左右滑動功能,簡易的側(cè)滑菜單控件,對此有興趣的朋友參考下學(xué)習(xí)下吧。
    2018-02-02
  • iOS開發(fā)系列--詳細(xì)講解C語言之存儲方式和作用域

    iOS開發(fā)系列--詳細(xì)講解C語言之存儲方式和作用域

    本篇文章主要介紹了iOS開發(fā)系列--詳細(xì)講解C語言之存儲方式和作用域,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11

最新評論

页游| 星子县| 齐河县| 土默特左旗| 定襄县| 嘉兴市| 江都市| 洪雅县| 本溪市| 榆树市| 新竹市| 祁连县| 石狮市| 镶黄旗| 德阳市| 闸北区| 河源市| 嘉义县| 巩义市| 外汇| 青州市| 盐池县| 梅河口市| 开封市| 瑞安市| 乡宁县| 佛学| 汉源县| 游戏| 年辖:市辖区| 罗甸县| 麦盖提县| 台北县| 武平县| 翼城县| 西吉县| 延吉市| 方城县| 白山市| 巧家县| 晋中市|