注册 登录
主题 : 请问如何使用 .xib 来适配 iOS 8~11?
级别: 骑士

状态: 连续签到 - [3天]
UID: 119701
精华: 0
发帖: 356
可可豆: 1507 CB
威望: 1503 点
在线时间: 468(时)
注册时间: 2012-01-18
最后登录: 2018-09-20
0 楼:  发表于: 2018-07-11 15:44    发自: Web Page
来源于 已解决 分类

请问如何使用 .xib 来适配 iOS 8~11?   

有个古董的app需要更新,使使用 .xib。
于是我很自然的改成 storeboard + autolauout,但是 iOS8 会在执行过程中直接闪退;iOS9会有元件突然无反应?
检查了很久都找不到原因,因为上面的错误都完全没有任何错误或警告讯息以供参考。
最后我只能想说:是否 storeboard 相对的比较耗资源?

于是放弃,全部重头来,保持使用 xib....可以正常工作了。

但...问题来了,当我没有选[Use safe area layout guides] 时(旧专案本来就没有勾选),在 iOS 8~10都正常显示,可是在 iPhone X 上就会有问题。
于是上网查了一下,原来 iOS11需要勾选[Use safe area layout guides] ,好吧那就勾选吧。

结果出现"Safe Area Layout Guide Before IOS 9.0"。
啊! safe area ?仅从 iOS 9.0 开始支援,好吧!也只能这样了。

但这时候我发现,他仅仅是可以无错误、无警告的编译成功。
可是在 iOS9~10上执行时会遮住 statusbar????

请大神指点迷津,我到底要怎样处理,才能完全正常的适配 iOS9 ~ iOS11?
[ 此帖被jtain在2018-07-19 17:04重新编辑 ]

MAC mini(OS X 10.13.5) + Xcode 9.4.1
级别: 侠客
UID: 379256
精华: 0
发帖: 186
可可豆: 222 CB
威望: 222 点
在线时间: 523(时)
注册时间: 2014-09-25
最后登录: 2018-09-21
1 楼:  发表于: 2018-07-11 17:58    发自: Web Page
xib同时兼容8-11很难的,我遇到这种页面都是用Masonry或者Snapkit手动写约束,然后重写viewSafeAreaInsetsDidChange方法在ios11中更新约束到safeAreaLayoutGuide上。还有一种方法就是把底部约束做一个IBoutlet,然后在viewSafeAreaInsetsDidChange中手动设置这个约束的值为34。
级别: 骑士

状态: 连续签到 - [3天]
UID: 119701
精华: 0
发帖: 356
可可豆: 1507 CB
威望: 1503 点
在线时间: 468(时)
注册时间: 2012-01-18
最后登录: 2018-09-20
2 楼:  发表于: 2018-07-12 10:40    发自: Web Page
那如果是仅兼容 9-11 呢?
也就是勾选 [Use safe area layout guides] 的话,有什么方式可以让 iOS 10-9 的 statusbar 不会被遮住?
MAC mini(OS X 10.13.5) + Xcode 9.4.1
级别: 骑士

状态: 连续签到 - [247天]
UID: 504066
精华: 0
发帖: 174
可可豆: 1571 CB
威望: 1131 点
在线时间: 889(时)
注册时间: 2015-09-08
最后登录: 2018-09-21
3 楼:  发表于: 2018-07-12 11:47    发自: Web Page
放弃iOS8吧,从9开始
级别: 骑士
状态: 连续签到 - [103天]
UID: 501425
精华: 0
发帖: 202
可可豆: 865 CB
威望: 675 点
在线时间: 700(时)
注册时间: 2015-08-28
最后登录: 2018-09-21
4 楼:  发表于: 2018-07-12 14:07    发自: Web Page
你那是iphonex 适配问题,不是ios11好吧,xib ios8-11都是正常的,手动改一下iphonex的约束就可以了   不需要勾选[Use safe area layout guides]
级别: 骑士

状态: 连续签到 - [3天]
UID: 119701
精华: 0
发帖: 356
可可豆: 1507 CB
威望: 1503 点
在线时间: 468(时)
注册时间: 2012-01-18
最后登录: 2018-09-20
5 楼:  发表于: 2018-07-12 14:26    发自: Web Page
回 4楼(xieminjie) 的帖子
请问如何手动改一下iphonex的约束?
MAC mini(OS X 10.13.5) + Xcode 9.4.1
级别: 骑士
状态: 连续签到 - [103天]
UID: 501425
精华: 0
发帖: 202
可可豆: 865 CB
威望: 675 点
在线时间: 700(时)
注册时间: 2015-08-28
最后登录: 2018-09-21
6 楼:  发表于: 2018-07-12 21:28    发自: Web Page
约束拖到相应的地方,代码改一下约束的constant
级别: 骑士

状态: 连续签到 - [3天]
UID: 119701
精华: 0
发帖: 356
可可豆: 1507 CB
威望: 1503 点
在线时间: 468(时)
注册时间: 2012-01-18
最后登录: 2018-09-20
7 楼:  发表于: 2018-07-19 17:03    发自: Web Page
谢谢
最后仅支援 iOS 9 以上,以便使用 [Use safe area layout guides] 来适配
并且在 .XIB 的最上方加上 UIImageView,然后设定高为 20,
最后在 app 一开始的地方加上 判断 iOS 11 以上时就把这个 UIImageView 的高改为 0

不过目前会有一些警告讯息,只能不管他了,我能力、时间有限,先完成任务再说。
MAC mini(OS X 10.13.5) + Xcode 9.4.1

本站内容均为本站转发,已尽可能注明出处。因未能核实来源或转发内容图片有权利瑕疵的,请及时联系本站,本站会第一时间进行修改或删除。 QQ : 3442093904

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部