如何在navigationbar上使用普通和大型标题的不同风格?(代码片段)

author author     2023-05-13     668

关键词:

我在导航栏中使用大标题。我还称它有这样的阴影。

https://i.ibb.co/WckRgVb/file-3.jpg

现在我想隐藏阴影,但只在大标题上,当我向下滚动(正常大小)时,阴影应该出现。

这是代码,我现在正在使用:

extension UINavigationController 

    // Shado Style for Nav Bar
    func shadowStyle(largeTitle: Bool = false) 
        navigationBar.shadowImage = UIImage()
        navigationBar.layer.masksToBounds = false
        navigationBar.layer.shadowColor = UIColor(red:0.80, green:0.80, blue:0.80, alpha:1.0).cgColor
        navigationBar.layer.shadowOpacity = 0.7
        navigationBar.layer.shadowOffset = CGSize(width: 0, height: 2.0)
        navigationBar.layer.shadowRadius = 5

        if(largeTitle) 
            if #available(iOS 11.0, *) 
                navigationItem.largeTitleDisplayMode = .always
                navigationBar.prefersLargeTitles = true
            
         else 
            if #available(iOS 11.0, *) 
                navigationItem.largeTitleDisplayMode = .never
                navigationBar.prefersLargeTitles = false
            
        
    

我在ViewController中将其称为:

override func viewWillAppear(_ animated: Bool) 
    self.navigationController?.shadowStyle(largeTitle: true)

    // other code

我的问题是,只有在显示大标题时,如何删除阴影?

答案

要在单个条上执行此操作,只需直接设置即可。

无论何时你想要,要更改所有条形,使用AppDelegate的外观代理在UINavigationBar中设置它,以便在加载第一个条形图之前启动它。

这里有一个例子,标题文字为蓝点的格鲁吉亚Bold 18点:

 let attrs = [
        NSAttributedString.Key.foregroundColor: UIColor.blue,
        NSAttributedString.Key.font: UIFont(name: "Georgia-Bold", size: 18)!
    ]

    UINavigationBar.appearance().titleTextAttributes = attrs
另一答案

检查这个布尔:self.navigationController?.navigationBar.prefersLargeTitles

override func viewWillAppear(_ animated: Bool) 
   if self.navigationController?.navigationBar.prefersLargeTitles 
        self.navigationController?.shadowStyle(largeTitle: true)
   

   // other code


另一答案

现在我发现了自己。

我只需要根据导航栏的高度设置navigationBar.layer.shadowOpacitynavigationBar.frame.size.height

如何使用 Bootstrap 在 Yii 框架上响应式地制作普通的 div 块?

】如何使用Bootstrap在Yii框架上响应式地制作普通的div块?【英文标题】:HowtomakenormaldivblocksresponsivelyontopoftheYiiframeworkwithBootstrap?【发布时间】:2012-11-0209:34:01【问题描述】:我已经设法使用YII框架构建了一个网站。我还安装了Boo... 查看详情

如何在导航栏的普通和大标题上使用不同的样式?

】如何在导航栏的普通和大标题上使用不同的样式?【英文标题】:HowtousedifferentstyleonnormalandlargeTitleatnavigationBar?【发布时间】:2019-04-1608:11:43【问题描述】:我在导航栏中使用大标题。我也把它设计成这样的阴影。https://i.ibb.co... 查看详情

如何使用条件索引在单元格上获取标量值

】如何使用条件索引在单元格上获取标量值【英文标题】:Howtogetscalarvalueonacellusingconditionalindexing【发布时间】:2015-08-2901:19:17【问题描述】:我有如下所示的数据框。我需要获取B列的标量值,这取决于A的值(这是我脚本中的... 查看详情

如何在 iOS 7 中使用 NavigationBar 背景图像 44px 高度更改状态栏背景?

】如何在iOS7中使用NavigationBar背景图像44px高度更改状态栏背景?【英文标题】:HowtochangestatusbarbackgroundwithNavigationBarbackgroundimage44pxheightiniOS7?【发布时间】:2014-03-1903:46:05【问题描述】:我正在使用NavigationController和NavigationBar可... 查看详情

如何在产生条件和的大型查询中消除 CROSS JOIN?

】如何在产生条件和的大型查询中消除CROSSJOIN?【英文标题】:HowcanIeliminateCROSSJOINinalargequerythatproducesconditionalsums?【发布时间】:2020-04-1715:37:30【问题描述】:我有一个产生529,032行的查询,我将其存储到一个名为EFOT_DISTINCT_COMBOS... 查看详情

如何使用 AutoLayout 在 NavigationBar 下方添加 UITableView?

】如何使用AutoLayout在NavigationBar下方添加UITableView?【英文标题】:HowtoaddUITableViewjustbelowNavigationBarusingAutoLayout?【发布时间】:2013-07-1817:37:25【问题描述】:使用NSLayoutConstraint我可以添加表格视图,但在Landscape中,它们之间存在... 查看详情

在不使用 Tint 的情况下更改 NavigationBar 和系统颜色

】在不使用Tint的情况下更改NavigationBar和系统颜色【英文标题】:ChangingNavigationBarandSystemColorsWithoutTint【发布时间】:2014-11-1613:31:23【问题描述】:我试图在我的应用程序的每个视图控制器上更改导航栏的颜色,但是当我使用以... 查看详情

当我使用嵌入在 UINavigationController 中的 SWRevealViewController 时如何隐藏 NavigationBar?

...嵌入在UINavigationController中的SWRevealViewController时如何隐藏NavigationBar?【英文标题】:HowtohidetheNavigationBarwheniuseSWRevealViewControllerembedinUINavigationController?【发布时间】:2014-01-1211:35:10【问题描述】:当我使用SWRevealViewControl 查看详情

如何在大型数据集上执行克里金(高斯过程回归)?

】如何在大型数据集上执行克里金(高斯过程回归)?【英文标题】:Howtoperformkriging(Gaussianprocessregression)onalargedataset?【发布时间】:2022-01-1005:20:33【问题描述】:我曾尝试使用sklearn和PyKrige(我认为更直观),但我的计算机内... 查看详情

无法在 SplitView MonoTouch 上显示 NavigationBar

】无法在SplitViewMonoTouch上显示NavigationBar【英文标题】:Can\'tshowNavigationBaronSplitViewMonoTouch【发布时间】:2012-02-0108:29:59【问题描述】:我在使用拆分视图上的导航栏时遇到问题。我希望导航栏显示在我的TableView所在的左侧视图中... 查看详情

大型网站架构演进单机网站

...都放在这一台服务器上。如果是.net的话,通常操作系统使用windowsserver,应用程序开发使用asp.net,然后应用程序部署在IIS上,数据库使用sqlserver。单机网站单体单库网站的架构非常简单,如下图:总结:单机网站架构的优点是开... 查看详情

Xamarin.iOS:如何将 NavigationBar 添加到视图

】Xamarin.iOS:如何将NavigationBar添加到视图【英文标题】:Xamarin.iOS:howtoaddaNavigationBartoaView【发布时间】:2018-10-0816:25:05【问题描述】:我在一个Xamarin原生应用程序上工作,我在其中显示一个包含国家/地区列表的模态视图。我想... 查看详情

如何在 python 中的大型数据集上训练随机森林?

】如何在python中的大型数据集上训练随机森林?【英文标题】:HowtotrainRandomForestonlargedatasetsinpython?【发布时间】:2021-10-1013:45:54【问题描述】:我有一个相当大的数据,包括1M样本和1K特征(一个1Mx1K矩阵),我正在尝试用它来... 查看详情

如何在 Ubuntu 上使用公钥和密码设置 SFTP

】如何在Ubuntu上使用公钥和密码设置SFTP【英文标题】:HowtoSetupSFTPwithPublickeyandPasswordonUbuntu【发布时间】:2019-06-2611:36:56【问题描述】:我在使用“公钥”和“密码”两因素身份验证设置“仅限SFTP”登录时遇到困难。我在Ubuntu16... 查看详情

latex里面标题上的角标星号如何显示为五角星?

\star在正文是五角星的,但是放到标题角标上就是普通星号了,非常困惑,求解。参考技术A第一种方法:有些操作符需要添加左边的角标,若是使用平时的上下标来处理,会出现左侧角标与符号有个间隔(用距离调整),若是操... 查看详情

在 MSSM 中使用标量值函数和来自 2 个表的数据

】在MSSM中使用标量值函数和来自2个表的数据【英文标题】:UsingscalarvaluedfunctioninMSSMwithdatafrom2tables【发布时间】:2020-06-2307:54:30【问题描述】:我想在这里就在MSSM上使用标量值函数计算来自2个不同表的数据集的平均值提出您的... 查看详情

如何从子视图中隐藏 NavigationBar?

】如何从子视图中隐藏NavigationBar?【英文标题】:HowtohideNavigationBarfromsubview?【发布时间】:2021-09-3014:00:35【问题描述】:我遇到了NavigationBar的问题,我不想在子视图(子视图)中使用它,我也使用setNavigationBarHidden()方法隐藏但... 查看详情

如何打破大型csv文件,在多个核心上处理它并使用nodeJs将结果合并为一个

】如何打破大型csv文件,在多个核心上处理它并使用nodeJs将结果合并为一个【英文标题】:Howtobreaklargecsvfile,processitonmultiplecoreandcombinetheresultintooneusingnodeJs【发布时间】:2016-10-2300:13:58【问题描述】:我有非常大的csv文件(370GB)。... 查看详情