iOS 11,新特性,安全区

在iOS11出来之后,,对iOS 来说改变最大的就是安全区,就是刘海的问题,在这块对于iOS新的特性

iPhone X尺寸

APP启动页,即LaunchImages,需要五张不同尺寸大小的图,切记一定要选择png格式,否则打包时报错,导致APP适配失败。

六张图的大小即:320×480、640×960、640×1136、750×1334、1242×2208、

1125*2436

分别对应的iphone屏幕尺寸:iphone 3GS、iphone4(s)、iphone5(c、s)、iphone6/7/8(s)、iphone 6/7/8(s) plus、iPhoneX

具体步骤:

Step1:

1.点击工程目录中的Images.xcassets/Assets.xcassets,点击左侧边栏的LaunchImages(如果没有,在空白处右击创建一个)

2.然后在xcode最右侧的边栏处选择你的APP是否要对ipad、横竖屏、以及低版本的iOS系统做支持。



iOS 11之前,

automaticallyAdjustsScrollViewInsets经常被设置成NO,由开发者去控制处理留白和坐标问题, 但是11+automaticallyAdjustsScrollViewInsets = NO这句代码失效。

iOS 11后,

把这个automaticallyAdjustsScrollViewInsets废弃,新增了contentInsetAdjustmentBehavior,这个属性是个枚举类型值,我们只需要把其设置成never就行了

解决tableView偏移88的问题,  我们可以对对 tableView 进行如下设置:

if (@available(iOS 11.0, *)) {

self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

} else {

self.automaticallyAdjustsScrollViewInsets = NO;

}



2、导航栏适配

导航栏新增了一种大标题样式,默认设置是不开启,所以不需要修改。

iOS 11以前,导航栏的高度是64,其中状态栏statusBar的高度是20,底部tabbar的高度是49。

iOS 11之后,iPhoneX的导航栏的高度是88,其中状态栏的statusBar的高度变成了44, 底部的tabbar变成了83。

iPhoneX的底部增加了虚拟Home区,由于安全区域的原因默认tabBar的高度由49变为83,增高了34,所以自定义的底部TabBar也需要需改其适配方案。

目前我们项目没有自定义底部TabBar, 则先不考虑吧, 先来考虑关于navi 在 iPhone X 上是88的问题.

目前没发现有iPhoneX的机型判断API,建议使用size来做代替判断。

#definekStatusBarHeight[[UIApplicationsharedApplication] statusBarFrame].size.height

#define kNavBarHeight 44.0

#define kTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49)//tabBar高

#define kTopHeight(kStatusBarHeight + kNavBarHeight)//导航栏高

//判断iPhoneX

#define isiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

#defineiPhoneX[[UIScreenmainScreen] bounds].size.width >= 375.0f && [[UIScreen mainScreen] bounds].size.height >= 812.0f && isiPhone

3、iPhone X上下显示黑条问题

运行Xcode9.0的iPhoneX模拟器, APP在iPhoneX屏幕没填充满,上下有黑色区域,这是因为app之前未用LaunchScreen.Storyboard作为启动页面,可以使用LaunchScreen来当做入场页面,这样APP才会自动适配为iPhoneX的大小。我的项目中是用Assets中的LaunchImage, 这样就可以修改Assets中的LaunchImage,添加iPhoneX的Launch图(1125*2436)


更新适配版本时 iPhone X 的启动图适配加上了, 千万别忘了也要传 Icon. 否则就会有上传版本时会有提示警告滴

4、MJRefresh上拉刷新死循环

self.tableView.estimatedRowHeight=150.0f;

150这个数值是你cell的平均高度,如果estimatedRowHeight设置非常小,MJRefresh的KVO会监听错误的contentoffset,造成不停进行上拉加载操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Uniapp中,如果要配置iOS安全区域,可以通过以下步骤进行操作: 1. 打开`manifest.json`文件,并切换到源码视图。 2. 在`app-plus`节点下添加一个`safearea`字段,用来配置iPhone的安全区域。 3. 在`safearea`字段中,可以根据需要设置不同的配置,比如底部安全区域的偏移和背景颜色等。 4. 如果要在底部的tabbar之上进行固定定位,可以使用CSS的`env`函数来计算安全区域的高度。 5. 在对应的样式类中,使用`bottom: env(safe-area-inset-bottom)`来设置底部的安全区域偏移。 6. 如果需要在tabbar之上进行固定定位,可以在计算安全区域高度的基础上再加上tabbar的高度。 总结起来,配置iOS安全区域主要涉及到修改`manifest.json`文件,并在样式中使用`env(safe-area-inset-bottom)`来设置底部安全区域偏移。可以根据需要进行调整和修改来满足项目的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [uniapp 苹果安全区配置](https://blog.csdn.net/qq_37564189/article/details/119782585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [uniapp关于iphone底部安全区域](https://blog.csdn.net/qq_32707555/article/details/109738170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值