Xib控件和代码实现的页面,个人热点蓝条出现和消失时,页面下压和恢复导致页面混乱及蓝条下压页面底部控件看不到的问题
问苹果客服,他让我买解决问题次数,哥终于自己搞定它了,后续会更新答案。
当手机开启共享个人热点,一台设备连接这个热点就会出现,个人热点蓝条。
经过测试,无论是否蓝条,对应控件的frame都一样,屏幕实际尺寸也没有变,状态栏也无任何有蓝条的信息,没有找到这种屏幕变化的事件。真让人纠结。
最好解决方式,识别出个人热点蓝条(使用期间开启定位时有时候也会出现定位蓝条)出现和消失的响应事件来调整控件的frame来达到适配蓝条下压和消失的问题。问题是我找不到蓝条出现和消失的通知事件。
在蓝条启动时打印的控件绝对坐标和没有蓝条时的坐标一样:
_[fg214,57,30;2015-12-08 17:42:06:263 caocao[1569:970455] SingleAsyncSocket.m:__36-[SingleAsyncSocket socketBSDThread]_block_invoke:2129 Err:bottomView.frame.origin.x:0.000000, bottomView.frame.origin.y:513.000000,[UIScreen mainScreen].bounds.size.height:568.000000
正常的没有开启个人热点的页面
当开启应用时没有个人热点蓝条,当开启个人热点时,xib实现的控件和代码实现的控件分离,xib实现的那个紫色控件被下压,那个白色的代码实现控件保持在原来的位置。
当开启应用时有个人热点蓝条,xib实现的那个紫色控件和那个白色的代码实现控件都被下压。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tjdNHCHH-1593854461811)(https://img-blog.csdn.net/20151208184034372)]
当开启应用时有个人热点蓝条后关闭个人热点,xib实现的那个紫色控件上浮,那个白色的代码实现控件位置不变导致,两个控件重叠。
当开启应用时有个人热点蓝条,整个页面被下压,导致部分控件看不到,无法操作该控件。
无共享热点蓝条的页面:
有共享热点蓝条的页面:
开启个人热点:
这个是苹果给我回复的让我买咨询次数的邮件,看来老外没有免费的晚餐啊!
您好: 这里是 Apple 开发者计划支援,我是 Selena,很高兴能为您服务。 由于我们是帐号的申请与管理团队,因此,无法直接提供协助。 Apple 开发者计划的参与者可以从开发者技术支持 (DTS)团队获取代码级及电路级技术支持。开发者可以使用年度计划会籍中的 Technical Support Incident(技术支持事件)获取该支持。 要确认您的帐户是否有可用的 Technical Support Incident(技术支持事件),或要购买一个 Technical Support Incident(技术支持事件),请访问 Member Center (会员中心),网址为 : https://developer.apple.com/membercenter Apple 开发者技术支持团队会通过英文电子邮件提供支持。请使用以下形式提交您的支持请求 Apple app、Mac app 和 Safari 扩展 https://developer.apple.com/membercenter/index.action#requestTechSupport 有关开发者技术支持的更多信息,请访问: https://developer.apple.com/cn/support/technical 若您还有其他任何帐号管理的疑问,请不吝与我们联系並请在致电时提供您的 Case Number:1005369896。我们的电话号码是 4006-701-855。 各地区 Apple 开发者计划支援电话号码: https://developer.apple.com/contact/phone.php 谢谢您的合作。 Selena Apple Inc.
解决方案见:蓝条下压和消失页面错乱问题解决方案(http://write.blog.csdn.net/postedit/50394240)。
注意:iOS13.51后,苹果抄袭安卓,把那个多出20像素状态栏修改为显示左上角时间背景颜色,并把时间换成对应图标一小段时间,然后图标消失,仍旧显示时间。所以苹果的热点共享(蓝色),后台定位(蓝色)和后台语音(红色)不会出现状态栏下压20像素导致底部页面20像素显示不出来的问题了。这个小功能变更不知道苹果什么时候修改的,苹果也没有给这方面的说明,我估计可能是iOS13时修改的。不过这样我们不用再适配这种页面混乱了。其实原来影响最差的不是普通页面,而是启动页面。若你的启动页面中间有有意义的图像。当热点状态栏出来时,会把中间截取20像素扔掉。
后台定位刚出现时。
热点共享工具栏出现一段时间后。
后台语音刚出现时。