iOS15-导航条、UITableView

一、导航条
在iOS 13 UINavigationBar新增了scrollEdgeAppearance属性,但在iOS 14及更早的版本中此属性只应用在大标题导航栏上。在iOS 15中此属性适用于所有导航栏,导致iOS15系统下之前设置会有些失效,表现情况有透明的有了颜色或者变成白色。
scrollEdgeAppearance:主要针对视图中存在滚动视图顶部根据导航条底部布局的情况。
我遇到的问题:就是列表跑到导航条下面去了。
我开始用如下代码

/// 设置NavigationBar的背景色
- (void)setNavigationBarAppearance
{
    UIImage *navBackgroundImage = [UIImage imageWithColor:self.navigationBarBackgroundColor size:self.navigationController.navigationBar.size];
    if (@available(iOS 15.0, *)) {
        self.navigationBarAppearance = [UINavigationBarAppearance new];
        self.navigationBarAppearance.backgroundColor = self.navigationBarBackgroundColor;
        self.navigationBarAppearance.backgroundImage = navBackgroundImage;
        self.navigationBarAppearance.backgroundEffect = nil;
        self.navigationBarAppearance.shadowColor = self.navigationBarBackgroundColor;
        self.navigationBarAppearance.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:20.0f],
                                       NSForegroundColorAttributeName:QH_title_color(title_000000_000000)};
        self.navigationController.navigationBar.scrollEdgeAppearance = self.navigationBarAppearance;
        self.navigationController.navigationBar.standardAppearance = self.navigationBarAppearance;
    }else{
        //背景色
        [self.navigationController.navigationBar setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];
        [self.navigationController.navigationBar setBarTintColor:[UIColor clearColor]];
        [self.navigationController.navigationBar setTitleTextAttributes:
         @{NSFontAttributeName:[UIFont systemFontOfSize:20.0f],
                                        NSForegroundColorAttributeName:QH_title_color(title_000000_000000)}];
        [self.navigationController.navigationBar setShadowImage:[UIImage new]];
    }
}

但是没有效果,经过检查发现是因为self.navigationController.navigationBar.translucent的问题

二、阴影设置不生效的问题
给collectionView设置阴影怎么都不显示,frame、masksToBounds等都检查就是不管用,经过多方验证,设置view等的阴影不成功的原因有以下几种:
1、设置viewclipsToBoundsYES,我遇到就是这个collectionViewclipsToBounds竟然默认就是YES
2、viewbackgroundColorclearColor
3、layer的阴影参数设置错误。

三、iOS15下UITableView顶部多出了一条空白
查资料发现iOS15 中 UITableView 新加了一个属性:sectionHeaderTopPadding,默认值为 automaticDimension,就会导致顶部多出一条空白。

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,295评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 11,813评论 0 2
  • 今天上午陪老妈看病,下午健身房跑步,晚上想想今天还没有断舍离,马上做,衣架和旁边的的布衣架,一看乱乱,又想想自己是...
    影子3623253阅读 7,972评论 3 8