iOS 11更新後以及iPhone X推出後工程中遇到的問題及適配

來源:互聯網
上載者:User

標籤:載入   頁面   one   head   預設   fresh   available   狀態列   取消   

1.UITableView滑動時右側的滑動條忽長忽短的亂跳以及MJRefresh上拉重新整理死迴圈

這是因為tableView在iOS11預設使用Self-Sizing,tableView的estimatedRowHeight、estimatedSectionHeaderHeight、estimatedSectionFooterHeight三個高度估算屬性由預設的0變成了UITableViewAutomaticDimension,MJRefresh的KVO會監聽錯誤的contentoffset,造成不停進行上拉載入操作,

解決方案可以再全域裡面將上面3個屬性的預設值設定為0即可

UITableView.appearance.estimatedRowHeight = 0;UITableView.appearance.estimatedSectionFooterHeight = 0;UITableView.appearance.estimatedSectionHeaderHeight = 0;

2.在iOS 11中tableview的contentsize預設下移了64高度

在iOS 11中UIViewCOntroller的 automaticallyAdjustsScrollViewInsets 屬性被廢棄了取而代之的是UIScrollVIew的contentInsetAdjustmentBehavior屬性,同樣的也可以更改預設的值

if (@available(iOS 11.0, *)) {    UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;} else {    // Fallback on earlier versions    self.automaticallyAdjustsScrollViewInsets = NO;}

然而這樣寫在調用相簿的時候當推出系統相簿的時候將系統頁面contentSize的下移取消掉了導致出現了大問題,所以又將上面的預設值去掉在特定的介面修改即可

3.項目在iPhone X上運行時上下都有巨大的黑邊

解決方案:因為項目中是用Assets中的LaunchImage, 這樣就可以修改Assets中的LaunchImage,添加iPhoneX的Launch圖(1125*2436)即可,但是

iOS 11以前,導覽列的高度是64,其中狀態列statusBar的高度是20,底部tabbar的高度是49。

iOS 11之後,iPhoneX的導覽列的高度是88,其中狀態列的statusBar的高度變成了44, 底部的tabbar變成了83。

iPhoneX的底部增加了虛擬Home區,由於安全區域的原因預設tabBar的高度由49變為83,增高了34,所以自訂的底部TabBar也需要修改其適配方案。

 

初光夫

iOS 11更新後以及iPhone X推出後工程中遇到的問題及適配

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.