iOS 11系统 iPhone X之前设备适配小节

一、之前项目运行在新系统上存在的问题

因为我项目中的导航栏都是自定义的View,所以不存在导航栏适配问题,以下是一些界面适配的问题
1. tableview的顶部在状态栏的底下的页面都出现了顶部状态栏位置空白

2. tableview有刷新的页面都出现了刷新时闪一下

3. tableview的sectionheader变得高度高了

4. 使用IQKeyboardManager时键盘上的完成按钮“不见了”

二、出现问题的原因及解决方法

1. 状态栏位置空白出现原因是:tableview的contentInsets顶部被系统设置了20,与iOS11的safeArea有关,所有scrollView顶部如果在状态栏下面其顶部都会有20contentInsets。解决方法

if(@available(iOS11.0, *)) {
      self.tableView.contentInsetAdjustmentBehavior=UIScrollViewContentInsetAdjustmentNever;
}

2. 刷新的时候闪一下的原因是,iOS 11系统将tableview改为自动计算高度了,即rowheight = UITableViewAutomaticDimension了.这样的情况下需要tableview设置estimateRowheight。

3.tableview的sectionheader\sectionfooter高度不符合代码设定的高度的原因: tableview的viewForHeaderInSection现在是需要设置的,在UITableViewStylePlain样式下如果没设置,在即使设置了高度也不会显示sectionheader,同时,也需要实现heightForHeaderInSection方法;在UITableViewStyleGrouped样式下,需要设置以下代码,高度才会符合设定的高度

- (UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section{
    return  nil;
}

4. 使用IQKeyboardManager时键盘上的完成按钮“不见了”的原因:IQKeyboardManager内部使用的IQBarButtonItem类继承UIBarButtonItem,UIBarButtonItem继承了UIBarItem,iOS 11对其做了修改。改正这个的bug的方法

pod'IQKeyboardManager','~> 4.0.13'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.iPhone X尺寸问题 1. 高度增加了145pt,变成812pt. 2.屏幕圆角显示,注意至少留10pt边...
    骑行天下阅读 12,975评论 5 36
  • 随着iOS11和xcode9刚开始正式发布,小编也迫不及待的更新了xcode9,手机也顺利更新到iOS,也终于见到...
    七秒记忆的鱼儿阅读 96,478评论 97 410
  • 一、简介 <<UITableView(或简单地说,表视图)的一个实例是用于显示和编辑分层列出的信息的一种手段 <<...
    无邪8阅读 10,751评论 3 3
  • iOS11与iPhone X的适配 文章讲解点:1.首先看一下iPhone X的模拟器样式吧2.iPhone X的...
    iYeso阅读 493评论 0 3
  • 今天的晨读没什么感觉,但是在猫叔的饭团里看到一个方法,觉得可行,跟大家分享一下。 大意是说如何在阅读一本书的时候看...
    良人犹美人阅读 244评论 4 10