iOS15适配

iOS15 NavigationBar背景颜色以前的方法失效,如果我们设置全局的颜色,可以在自定义的UINavigationController中这样设置代码如下:

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

           UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];

           //[appearance setShadowImage:[[UIImage alloc] init]];

            appearance.titleTextAttributes = @{NSFontAttributeName:FontSize(16),

                                               NSForegroundColorAttributeName:[CQColor fitColorWithLightColor:ColorWithRGB(48, 49, 51) darkColor:[UIColor whiteColor]]};

        

           [appearance setBackgroundColor:[CQColor fitColorWithLightColor:UIColorFromRGB(0xcc0000) darkColor:[UIColor blackColor]]];

          // appearance.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleRegular];

           [[UINavigationBar appearance] setScrollEdgeAppearance: appearance];

           [[UINavigationBar appearance] setStandardAppearance:appearance];

    }else{

        [[UINavigationBar appearance] setTitleTextAttributes:

         @{NSFontAttributeName:FontSize(16),

         NSForegroundColorAttributeName:[CQColor fitColorWithLightColor:ColorWithRGB(48, 49, 51) darkColor:[UIColor whiteColor]]}];

           self.navigationBar.barTintColor = [CQColor fitColorWithLightColor:UIColorFromRGB(0xcc0000) darkColor:[UIColor blackColor]];

        

    }

如果我们希望在某一个页面改变导航栏的颜色,可在对应VC的viewWillDisappear 和viewWillAppear加入代码如下:

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

             UINavigationBarAppearance *barApp = [UINavigationBarAppearance new];

            barApp.titleTextAttributes = @{NSFontAttributeName:FontSize(16),

                                           NSForegroundColorAttributeName:[CQColor fitColorWithLightColor:ColorWithRGB(48, 49, 51) darkColor:[UIColor whiteColor]]};

             barApp.backgroundColor = UIColorFromRGB(0xcc0000); // 设置为你项目中的颜色

             self.navigationController.navigationBar.scrollEdgeAppearance = barApp; // 可滑动界面配置

             self.navigationController.navigationBar.standardAppearance = barApp; // 普通页面配置

        

    }else{

        

        [self.navigationController.navigationBar setBarTintColor:UIColorFromRGB(0xcc0000)];

    }

  1. UINavigationBar

在iOS 15中,UINavigationBar默认为透明。在滑动时会有模糊效果。如果想要一直就是模糊效果,可以通过改变scrollEdgeAppearance属性来实现。
解决办法:

UINavigationBarAppearance *barApp = [[UINavigationBarAppearance alloc] init];
barApp.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleRegular];
self.navigationBar.scrollEdgeAppearance = barApp;

UINavigationBar、UIToolbar 和 UITabBar 将在你的VC关联滚动视图位于适当的边缘时使用 scrollEdgeAppearance(或者如果您的视图层级结构中没有 UIScrollView,更多内容见下文)。
您必须使用 UIBarAppearance API 来自定义。UIToolbar 和 UITabBar 为此在 iOS 15 中添加了 scrollEdgeAppearance 属性。
解决办法:

    if (@available(iOS 15.0, *)) {
        UINavigationBarAppearance *barApp = [UINavigationBarAppearance new];
        barApp.backgroundColor = [[UIColor blueColor] colorWithAlphaComponent:0.5];
        self.navigationController.navigationBar.scrollEdgeAppearance = barApp;
        self.navigationController.navigationBar.standardAppearance = barApp;
    }
  1. iOS 15 UITableView sectionHeader下移22像素
    iOS 15中 UITableView 新增了一个属性:sectionHeaderTopPadding。此属性会给每一个 section header 增加一个默认高度,当我们使用 UITableViewStylePlain 初始化UITableView 的时候,系统默认给 section header 增高了22像素。

解决办法:

if (@available(iOS 15.0, *)) {
    tableView.sectionHeaderTopPadding = 0;
}

3、对状态编程的支持:UICellConfigurationState;UICollectionViewCell、UITableViewCell都支持状态变化时的block执行了。
4、UICollectionViewLayout支持自动高度;AutomaticDimension
5、json解析支持json5了
6、增加UISheetPresentationController,通过它可以控制 Modal 出来的 UIViewController 的显示大小,且可以通过拖拽手势在不同大小之间进行切换。
7、UIButton支持更多配置。UIButton.Configuration是一个新的结构体,它指定按钮及其内容的外观和行为。它有许多与按钮外观和内容相关的属性,如cornerStyle、baseForegroundColor、baseBackgroundColor、buttonSize、title、image、subtitle、titlePadding、imagePadding、contentInsets、imagePlacement等。

8、推出CLLocationButton用于一次性定位授权,该内容内置于CoreLocationUI模块,但如果需要获取定位的详细信息仍然需要借助于CoreLocation。
9、URLSession 推出支持 async/await 的 API,包括获取数据、上传与下载
10、系统图片支持多个层,支持多种渲染模式。
11、UIImage 新增了几个调整尺寸的方法。


iOS15中,苹果对导航栏的性能做了优化,默认情况下,如果导航栏与视图没有折叠,导航栏的背景透明,如果系统检测到有重叠的话,会变成毛玻璃的效果

参考链接:https://www.jianshu.com/p/39c529cbedc3

               https://www.jianshu.com/p/580508f430c9

iOS开发 更新iOS15后APP图标变空白问题

1、一开始想到的是可能有人误改了图标文件,于是删除了images.xcassest中的AppIcon文件,从新生成→添加图标,但是依然未解决。(失败)

2、想到是图片格式/尺寸的问题,于是所有图片按照规定重新生成,但是仍然无济于事。(失败)

3、因为设置图标的方法除了在images.xcassest中的AppIcon文件中设置还可以在info.plist设置、或者直接在工程里面放一个icon.png的图片来设置,所以都检查了一遍发现也不是这个原因(失败)

4、重置手机。(失败)

解决方案

方案一、在你的podfile中加入以下代码就可以了

post_install do |installer|
    copy_pods_resources_path = "Pods/Target Support Files/Pods-工程名/Pods-工程名-resources.sh"
    string_to_replace = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"'
    assets_compile_with_app_icon_arguments = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${BUILD_DIR}/assetcatalog_generated_info.plist"'
    text = File.read(copy_pods_resources_path)
    new_contents = text.gsub(string_to_replace, assets_compile_with_app_icon_arguments)
    File.open(copy_pods_resources_path, "w") {|file| file.puts new_contents }
end

像这样:

 

方案二、真机构建安装后,重启真机。(经测试可行)

方案三、经过多番寻找,在iOS15.0.1上可以修复此bug。(没测试过,如果上述1、2方法都没效果可以尝试此方法)

iOS开发 更新iOS15后APP图标变空白问题 - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值