针对iOS11做出的App适配工作(干货分享,持续更新)

伴随着iOS11的发布,iOS端App 又是一波适配的工作,emmmmm,

首先再官网上下载了Xcode 9 GM 版本,伴随着Mac OS 从10.12.5 升级到了 10.12.6 (Xcode 9 只支持在最新的系统上运行),还好公司的网速给力,不到俩小时的时间,各种下载工作全部搞定。

对于iOS11 的SDK 更新了哪些内容,这里不做叙述,详情请看:

iOS 11 SDK 介绍Developer iOS以及WWDC的视频啦Updating Your App for iOS 11

下面主要记录在适配项目App的时候遇到的问题:

1.首先导航栏自定义View不能点击!!


导航栏右边Item自定义View


这就有点尴尬了,于是开始定位问题, 这是一个自定义的View组件, 然后,Autolayout做好约束,规则是这样的,两个Button的Icon 都是固定的尺寸,固定大小, 如图: 

然后发现没有拉左右和上下的约束~ emmmmm,iOS11之前都是没问题的, 然后,拉好约束,如图:

完美解决。

2.tableViewSection 莫名出现分割线!!

效果图如下:


定位原因,这种是因为自己代码写的TableView,然后AddSubView 到自己的Controller里面的。主要因为Table Views 在iOS11 中默认启用Self-Sizing,我们在iOS 8之后, 使用

tableView.rowHeight = UITableViewAutomaticDimension

tableView.estimatedRowHeight = 200

然后,在cell里面使用Autolayout 拉好上下左右的约束, tableView 就会动态展示内容了,这是因为estimateRowHeight相当于预估算行高的作用。

然后,项目中,是只写了-tableView: heightForHeaderInSection:和- tableView: heightForFooterInSection:两个方法,而iOS11 里面 ,如果不是闲,相应的viewForSection 方法时,前面两个方法是无效的,

有两个解决方案:

一种是你在iOS11下不想使用Self-Sizing的话,可以通过:

self.tableView.estimatedRowHeight = 0

self.tableView.estimatedSectionHeaderHeight = 0

self.tableView.estimatedSectionFooterHeight = 0

这样的方式关闭。

二种是你已经使用了Self-Sizing的话,可以通过:


3.使用了Self-Sizing之后,Autolayout没生效!

效果如图:

可以看到,行高都变成默认的 44了,Autolayout并没有生效,没有自动动态展示内容啊~

然后,发现了这样的一个问题,iOS11 之前,使用Self-Sizing的时候,

tableView.rowHeight = UITableViewAutomaticDimension

tableView的属性rowHeight是默认为UITableViewAutomaticDimension,所以我们使用的时候,很多会设置:

tableView.estimatedRowHeight = 200

这一句话,但是iOS11 中不行,前面有提到过。解决思路,当然是加上那句话啦。

tableView.rowHeight = UITableViewAutomaticDimension

tableView.estimatedRowHeight = 200

两者同时出现,解决。

4.关于安全区域Safe Area

在这里提一点,iOS7 引入的 topLayoutGuide 和 bottomLayoutGuide 在iOS 11 中被废弃了,取而代之就是安全区域的概念,提供了两种方式safeAreaInsets 和 safeAreaLayoutGuide,即 insets 或者 layout guide。

看图


勾选Use Safe Area Layout Guides之后,Top Layout Guide 和 Bottom Layout Guide 被替换掉,变成 Safe Area。


在这里有一个小Tip:

安全区域针对于iPhoneX的尺寸,来说,效果是可行的, 但是放到8,8plus 上 面,就会莫名多一条分割线。所以,可以写一个小延展,来区别是哪个机型:

extension UIDevice {

public func isX() -> Bool {

            if UIScreen.main.bounds.height == 812 {

                     return true

            }

            return false

      }

}

具体参考如下:


相似问题建议以iOS11正式版以及真机的测试为主,模拟器也有坑的啦。后续会跟进持续更新,,,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • 本文为作者原创,未经作者允许不得转载。该文同时发表在腾讯bugly公众号:https://mp.weixin.qq...
    sonialiu阅读 101,488评论 74 283
  • iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。 本文介绍iOS11中在UI方面做了哪...
    张璠阅读 571评论 0 1
  • 前言 苹果WWDC开发者大会上,终于发布了大家期待已久的iOS 11,有些新特性功能确实出人意料。不过大的方面苹果...
    Mr_Say_Yes阅读 3,206评论 6 15
  • 地铁转乘的时候 很多人选择扶梯,或许是累了,也可能是习惯了,省事省力,亦或许是为了抽空看看手机…… 每逢有机会用到...
    Judy970606阅读 226评论 0 0
  • 昨天的争吵一直在我脑海浮现,包括昨晚睡觉之前我都在想着如何解决问题,所以我想解决这个问题的决心很大,同时我也觉知到...
    Hi_张阅读 110评论 0 0