iOS [UIScreen mainScreen].bounds 横竖屏在不同版本获取屏幕大小不对的问题

在开发滑动旋转引导图时,发现在不同iPhone 6 Plus设备上,通过[UIScreen mainScreen].bounds获取的高度不一致。问题源于放大模式下,6P获取的高度为667,而非正常值736。解决方案是检测设备是否处于放大模式,并根据设备型号和系统版本进行适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做 随遇(我们公司的陌生人社交应用) 的时候,做了一个滑动旋转的引导图,类似当当和百度音乐,在对iphone 6 plus做适配的时候发现了一个奇葩的问题:在公司某个同事的机器上,引导图显示是正常的,在其他人的6P上,显示不正常,让我觉得很疑惑,于是乎debug一番,发现如下规律:

1,在引导图能正常显示的机器上,通过[UIScreen mainScreen].bounds 获得的高度是 667!!!

2,在引导图不能正常显示的机器上,通过[UIScreen mainScreen].bounds获得的高度是736。

很明显,1是不对的,667是6的高度!搞得我非常之不爽,一时也没弄明白其中的缘由,给测试妹子也给不了解释。


第二天我仔细对比这两台手机,发现其中一台竟然用的是 放大模式 !而6P在放大模式下,通过[UIScreen mainScreen].bounds 获得的高度竟然是667,我也是醉了。果断调回标准模式做适配,瞬间搞定。

另外,我又试了一下iPhone6在放大模式下,其高度是:568!!!iPhone5s及之前的iPhone没有放大模式。


同样遇到,这时候我给出的解决方法是判断设备版本,来让高、宽是否相等或相互替换。

iOS 获取手机型号,系统版本

144 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值