iOS15适配更新总结

iOS15适配更新总结

2023年7月14日发(作者:)

iOS15适配更新总结本⽂主要分享⼀下 iOS15 上适配⽅案,仅做开发记录使⽤,开发过程中通过使⽤陆续增加。iOS15 的适配,很重要的⼀环就集中在UINavigationBar和UITabbar⽅⾯。⽤新Xcode13编译⼯程后,iOS15项⽬显⽰出现视图问题。iOS15 适配1、UINavigationBar2、UITabBar3、TableView4、Image▐ UINavigationBar 从 iOS 15 开始,UINavigationBar在控制器中关联滚动视图顶部使⽤;在iOS15中,UINavigationBar默认是透明的,有滑动时会逐渐变为模糊效果,可以通过改变EdgeAppearance属性直接变为模糊效果、配置相关属性-背景、字体等现有问题:⽤新Xcode13编译iOS15项⽬后,导航栏的问题⽐较明显,调试之后发现是UINavigationBar部分属性的设置在iOS15上是⽆效的。运⾏起来后发现,导航栏颜⾊设置失效,字体颜⾊也失效,并且有导航栏阴影⿊线。查看导航栏的相关API:UINavigationBarAppearance后发现,iOS15navigationBar的相关属性设置要通过实例UINavigationBarAppearance来实现,UINavigationBarAppearance是iOS13更新的API,应该有⼈已经在⽤,我们的应⽤兼容iOS10+,对于导航栏的设置还没有使⽤UINavigationBarAppearance,如今在iOS15上失效,所以对于呈现的问题,做如下适配: // 修改NarBar背景 if (@available(iOS 15.0, *)) {

UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init]; // 背景⾊ oundColor = [UIColor blueColor]; // 去掉半透明效果 oundEffect = nil; // 标题字体颜⾊及⼤⼩ extAttributes = @{ NSForegroundColorAttributeName : [UIColor whiteColor], NSFontAttributeName : [UIFont boldSystemFontOfSize:18], }; // 设置导航栏下边界分割线透明 Image = [[UIImage alloc] init]; // 去除导航栏阴影(如果不设置clear,导航栏底下会有⼀条阴影线) Color = [UIColor clearColor]; // standardAppearance:常规状态, 标准外观,iOS15之后不设置的时候,导航栏背景透明 rdAppearance = appearance; // scrollEdgeAppearance:被scrollview向下拉的状态, 滚动时外观,不设置的时候,使⽤标准外观 EdgeAppearance = appearance; }▐ UITabBar 从 iOS 15 开始, UITabBar 在控制器中关联滚动视图底部时使⽤EdgeAppearance配置相关属性-背景、字体等现有问题:⽤新Xcode13编译iOS15项⽬后,tabbar的问题和navigationBar的问题属于类类似,运⾏起来后发现,tabbar背景颜⾊设置失效,字体颜⾊也失效,并且阴影设置也失效。可查看TabBar的相关API:UITabBarAppearance后发现,iOS15的tabBar的相关属性设置要通过实例UITabBarAppearance来设置,所以对于呈现的问题,做如下适配:// 修改tabbar背景if (@available(iOS 15.0, *)) {

UITabBarAppearance *appearance = [UITabBarAppearance new]; //tabBar背景颜⾊ oundColor = [UIColor whiteColor]; // 去掉半透明效果 oundEffect = nil; // tabBaritem title选中状态颜⾊ extAttributes = @{ NSForegroundColorAttributeName:KColorFromRGB(0x53A2F8), NSFontAttributeName:[UIFont systemFontOfSize:12], }; //tabBaritem title未选中状态颜⾊ extAttributes = @{ NSForegroundColorAttributeName:KColorFromRGB(0x7E7E7E), NSFontAttributeName:[UIFont systemFontOfSize:12], }; EdgeAppearance = appearance; rdAppearance = appearance;}▐ TableView 从 iOS 15 开始,TableView 增加sectionHeaderTopPadding属性,默认情况sectionHeaderTopPadding会有22个像素的⾼度,及默认情况,TableView section header增加22像素的⾼度可做如下适配: if (@available(iOS 15.0, *)) { nHeaderTopPadding = 0; }▐ Image 在iOS15中,UIImageWriteToSavedPhotosAlbum存储图⽚之后的回调不再返回图⽚了,会返回nil,如果在回调⽅法⾥⾯操作image有可能会直接Crash,⽬前的解决办法声明⼀个全局image去记录,后⾯再去操作: = savedImage;UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ // }

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689264202a226410.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信