激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - Xcode 9下適配iPhoneX導致iOS 10不兼容問題的解決方法

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

2021-04-23 18:16頤和園 IOS

這篇文章主要給大家介紹了關于Xcode 9下適配iPhoneX導致iOS 10不兼容問題的解決方法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

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

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

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

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

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

解決方法

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

百思不得其解。后來聯想到 xcode 9 為了適配 iphonex 曾經對自動布局約束進行了一些改變,比如“安全區”的概念,于是懷疑是新的 ios sdk 對 scrollview 的某些布局屬性進行了修改。

通過將兩種模擬器下的 scroll view 屬性進行打印后發現,在 ios 10/11 下,scroll view 的 contentinset 屬性是有所區別的。

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

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

?
1
2
3
if ([uidevice currentdevice].systemversion.floatvalue < 11.0) {
  _scrollbar.contentinset = uiedgeinsetszero;
 }

發現在 ios 10 下菜單居然顯示了!

這種方式雖然在一定程度上解決了問題,但并不徹底,在測試中發現,ios 10 下的布局問題偶爾還是會出現(特別是 view controller 第一次加載時)。因為二級菜單需要進行一個網絡加載,這個加載的速度有可能快、有可能慢,那么當第一次頁面顯示完成之后,有可能二級菜單已經顯示完了,自動布局引擎還沒有完成計算,它有可能再次修改 scroll view 的 contentinset 值,從在頁面第一次加載時,菜單顯示不出來。

要解決這個問題,必須思考其它方式。比如 uiscrollviewdelegate 協議。

首先將 view controller 聲明為實現 uiscrollviewdelegate:

?
1
<uiscrollviewdelegate>

設置 scroll view 的 delegate 委托:

?
1
_scrollbar.delegate = self;

然后實現 scrollviewdidscroll 委托方法:

?
1
2
3
4
5
6
// mark: - uiscrollviewdelegate
-(void)scrollviewdidscroll:(uiscrollview *)scrollview{
 if (scrollview == _scrollbar && scrollview.contentoffset.y != 0){
  _scrollbar.contentinset = uiedgeinsetszero;
 }
}

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

注意:所有 uiscrollview 子類都有此問題。如果你是用 ib 進行布局,則在使用 align to edges 時,需要注意將四邊對齊于 superview,而不是默認的 safe area,否則就會出現此問題。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://blog.csdn.net/kmyhy/article/details/80061838

延伸 · 閱讀

精彩推薦
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
主站蜘蛛池模板: 欧美一级做一级爱a做片性 久久久资源网 | 99国语露脸久久精品国产ktv | 欧美成人综合视频 | 成年毛片 | 天天色狠狠干 | 精品久久久一二三区播放播放播放视频 | 国产免费资源 | 精品一区二区免费视频视频 | 2019亚洲日韩新视频 | 黄色一级片毛片 | 91精品观看91久久久久久国产 | 最新亚洲国产 | 国产美女视频一区二区三区 | 久操伊人 | 成人一级片毛片 | 香蕉国产片 | 激情在线视频 | 欧美一区二区三区不卡免费观看 | 欧美激情性色生活片在线观看 | 曰韩黄色片 | 久久精精 | 欧美一a一片一级一片 | 一级成人欧美一区在线观看 | 久久91精品国产91久久yfo | 毛片小网站 | 欧洲精品久久 | 羞羞视频免费网站 | 新久久久久久 | 奶子吧naiziba.cc免费午夜片在线观看 | 欧美精品一二三区 | 日韩区在线 | 国产做爰全免费的视频黑人 | 欧美性猛交xxxxx按摩国内 | 九九视频在线观看黄 | 国产午夜精品久久久 | 亚洲日韩中文字幕一区 | 久久精品一区二区三区不卡牛牛 | 国产视频在线观看一区二区三区 | 成人免费观看av | 精品二区在线观看 | av电影在线观看免费 |