首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在iOS 11中使用增加的导航栏标题

在iOS 11中,苹果引入了一些新的界面设计元素和改进,其中包括对导航栏(Navigation Bar)的更新。以下是关于iOS 11中增加的导航栏标题的基础概念、优势、类型、应用场景以及可能遇到的问题和解决方法:

基础概念

  • 大标题(Large Title):iOS 11引入了一个新的特性,允许导航栏标题以更大的字体显示,通常位于导航栏的顶部,并且在滚动视图时会有动画效果。
  • 小标题(Small Title):当用户向下滚动内容时,大标题会平滑地过渡到常规的小标题。

优势

  1. 提高可读性:大标题使得重要信息更加突出,便于用户快速识别。
  2. 增强用户体验:动态变化的标题增加了界面的生动性和互动感。
  3. 符合Material Design原则:这种设计风格与谷歌的Material Design理念相呼应,提升了整体的视觉一致性。

类型

  • 静态大标题:始终显示为大标题。
  • 动态大标题:根据用户的滚动行为在大标题和小标题之间切换。

应用场景

  • 新闻应用:用于突出显示文章标题。
  • 社交媒体应用:在用户浏览动态时提供清晰的导航指示。
  • 电商应用:在商品列表页面帮助用户快速定位当前分类。

示例代码(Swift)

代码语言:txt
复制
import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 设置导航栏的大标题样式
        navigationController?.navigationBar.prefersLargeTitles = true
        
        // 创建一个标签作为大标题
        let titleLabel = UILabel()
        titleLabel.text = "我的大标题"
        titleLabel.font = UIFont.boldSystemFont(ofSize: 34)
        titleLabel.textColor = .black
        navigationItem.titleView = titleLabel
        
        // 设置滚动视图
        let scrollView = UIScrollView()
        scrollView.frame = view.bounds
        view.addSubview(scrollView)
        
        // 添加一些内容到滚动视图
        let contentView = UIView()
        contentView.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: 2000)
        scrollView.contentSize = contentView.bounds.size
        scrollView.addSubview(contentView)
        
        // 添加一些子视图到内容视图
        for i in 0..<10 {
            let label = UILabel()
            label.frame = CGRect(x: 20, y: CGFloat(i * 100 + 20), width: 200, height: 40)
            label.text = "这是第 \(i) 行内容"
            contentView.addSubview(label)
        }
    }
}

可能遇到的问题和解决方法

  1. 标题不显示或显示不正确
    • 确保navigationController?.navigationBar.prefersLargeTitles = true已设置。
    • 检查navigationItem.titleView是否正确配置。
  • 滚动时标题动画不流畅
    • 确保滚动视图的contentInsetAdjustmentBehavior属性设置为.automatic
    • 确保滚动视图的contentInsetAdjustmentBehavior属性设置为.automatic
  • 颜色或字体不符合预期
    • 使用UINavigationBarAppearance来自定义导航栏的外观。
    • 使用UINavigationBarAppearance来自定义导航栏的外观。

通过以上信息,你应该能够理解和使用iOS 11中的导航栏大标题特性,并解决可能遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS导航栏使用总结

目录: 一、设置导航栏样式 二、解决自定义导航栏返回按钮后侧滑不可用问题 三、隐藏导航栏底部的分割线 四、导航栏引起的布局问题 相关文章:iOS状态栏的使用总结 一、设置导航栏样式 设置导航栏的样式可分为全局设置与局部设置...iOS导航栏自带的返回按钮形式单一,所以大多情况下,我们都需要自定义导航栏返回按钮。...导航栏视图层级图 从图中可以看出,导航栏的底部分割线是一个UIImageView对象,而且高度只有0.5,所以我们可以据此获取到导航栏的底部分割线对象,在一个视图控制器中实现此需求,代码如下: #import...,用于优化滑动类视图(继承于UIScrollView的视图)在视图控制里的显示: iOS系统的导航栏UINavigationBar与标签栏UITabBar默认都是半透明模糊效果,在这种情况下系统会对视图控制器的...self.edgesForExtendedLayout=UIRectEdgeNone 3.导航栏透明属性translucent 上述两种属性都是在解决导航栏半透明情况下的布局问题,但是如果我们的需求就是导航栏不透明

3.2K20

ios7之后导航栏的问题2

https://blog.csdn.net/u010105969/article/details/53334755 在《ios7之后导航栏的问题1》(http://blog.csdn.net/u010105969.../article/details/53333748)博客中我们提到了在有导航栏的情况下根视图的坐标原点的的问题,但我当初添加的是一个普通的视图,如果我们添加的是一个UITableView我们会发现问题又会有所不同...那是因为tableV的内边距距离上方发生了64的偏移量,我们可以通过打印tableV的内边距查看: 在viewDidLoad方法中打印此方法: NSLog(@"%f", self.tableV.contentInset.top...); 在viewWillLayoutSubviews方法中打印此方法: NSLog(@"%f", self.tableV.contentInset.top); 我们发现在viewWillLayoutSubviews...我还发现,如果我们的根视图是tabBarController我们添加的tableV的内边距同样会距离底部发生49的偏移。 不知道我的两篇博客是否解答了读者心中的一些疑惑,希望能够。

84730
  • 03_iOS导航栏的正确隐藏方式

    简介 在项目中经常碰到首页顶部是无限轮播,需要靠最上面显示.有的设置导航栏为透明等一系列的方法,这个可以借助第三方.或者干脆简单粗暴的直接隐藏掉导航栏.可是push到下一个页面的时候是需要导航栏的,如何做了...第一种做法 注意这里一定要用动画的方式隐藏导航栏,这样在使用滑动返回手势的时候效果最好,和上面动图一致.这样做有一个缺点就是在切换tabBar的时候有一个导航栏向上消失的动画. - (void)viewWillAppear...]; [self.navigationController setNavigationBarHidden:NO animated:animated]; } 第二种做法 设置self为导航控制器的代理...,实现代理方法,在将要显示控制器中设置导航栏隐藏和显示,使用这种方式不仅完美切合滑动返回手势,同时也解决了切换tabBar的时候,导航栏动态隐藏的问题。...最后要记得在控制器销毁的时候把导航栏的代理设置为nil。

    1.3K20

    ios7之后导航栏的问题1

    https://blog.csdn.net/u010105969/article/details/53333748 iOS7之后rootView(即根视图)的原点是(0,0),当根视图控制器是NavigationController...此时我们看到红色视图的在navigationBar下方,即Y坐标为0。由此我们推断根视图的坐标原点发生了变化变成了(0,64),我们同样可以同时视图调试器看到,如图: ?...上面设置属性的代码是设置navigationBar的透明属性translucent,此属性默认是YES,我们也看到在默认状态下navigationBar是有透明度的,当设置此属性为NO时,navigationBar...我所说的设置navigationBar的颜色不是通过setBackgroundColor这个方法,因为这个方法设置的颜色并不是我们想要的颜色,比如我们想设置navigationBar的颜色为纯绿色,如果直接使用...如果我们在设置navigationBar的颜色后还想要根视图的坐标原点不变,那么我们可以在设置颜色的时候给它一个透明度,那么此时navigationBar的translucent属性同样为YES即默认值

    43720

    iOS去除导航栏和tabbar的1px横线

    1.在自己定义的导航栏中或者设计稿中经常需要去除导航栏的1px横线,主要是颜色太不协调了 去除之前的图片 要去除这1px的横线,首先应该知道它是什么,在Xcode的界面调试中可以看到,它其实是UIImageView...来的 找到横线是什么了··· 其实这是navigationBar的shadowImage,所以只要设置它为空即可,但是设置它为空之前应该先设置它的背景也为空,全部代码如下: [self.navigationController.navigationBar...: 完成之后的效果 既然导航栏的那一横线能去除,那tabbar那一横线也是能去除的了(其实也是shadowImage来的)··· 方法一: 自定义UITabBarController 方法二: [self.tabBarController.tabBar...,只要设置它的shadowImage即可。...(如果有更加好的方法,希望交流一下~~)

    1.7K40

    【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中的基本文本和button以及各种跳跃

    当然可用的有设置导航条标题的方法setTitle,当然你也能够直接把文字换成一个视图。...即所谓的标题视图放在导航条的中间,用得方法是setTitleView,非常多游戏的导航条中间貌似是一个图片,能够用这个。...,在状态栏下方显示 //clipsToBounds就是把多余的图片裁剪掉 self.navigationController.navigationBar.clipsToBounds=YES...; //设置导航标题 [self.navigationItem setTitle:@"主页"]; //设置导航标题视图,就是这一块能够载入随意一种视图...事实上是导航控制器在控制,在里面的元素都能够通过navigationController属性获取到它们所在的导航控制器 //所以(2)获取到导航控制器之后,使用Push的那个方法,往栈里面放一个视图控制器

    2.4K10

    iOS系统中导航栏的转场解决方案与最佳实践

    但随着美团 App 业务的高速发展,这种硬编码的方式遇到了以下的挑战: 业务模块的不断增加,导致使用硬编码方式编写的代码维护成本增加,代码质量迅速下降。...导航栏组件的改变与革新 导航栏组件在 iOS 11 发布时,获得了重大更新,这个更新可不是增加了一个大标题样式(Large Title Display Mode)那么简单,需要注意的地方大概有两点: 导航栏全面支持...导航栏组件到底怎么了? 经常有人说 iOS 的原生导航栏组件不好使用,抱怨主要集中在导航栏组件的状态管理和控件的布局问题上。...导航栏的颜色变化 颜色变化的问题就稍微复杂一些,在 iOS 7 后,导航栏增加了 translucent 效果,这使得导航栏背景色的变化出现了两种情况: translucent 属性值为 YES 的前提下...但这个方案的一个弊端就是,如果苹果修改了导航栏的整体风格,就好比 iOS 11 的大标题特效,那么工作量就来了。

    2.4K30

    iOS透明导航栏的平滑过渡(进阶版)引实现过程结

    引 如我在传送门:iOS导航栏切换界面时隐藏和显示中所说,现在很多App的个人中心模块都是不保留导航栏的,会直接使导航栏透明,比如做的很好的QQ个人信息界面: 为什么说QQ做的很好呢?...而很多App的做法其实比较粗糙,类似于我在传送门:iOS导航栏切换界面时隐藏和显示中的做法,需要导航栏透明时,直接将导航栏隐藏起来。...现在问题已经讲完了,基于这些问题,我们自己来尝试实现一种更好的平滑过渡效果,不自定义导航栏,直接利用系统原生的导航栏,使用Category和Runtime的技术,达到这个效果: 代码可以在示例工程下载...,标题、返回按钮啥的都方便加,这也就是说不隐藏导航栏,而是要单独让导航栏背景透明; 2、在导航栏透明与否的界面间切换时透明度有渐变效果; 3、在UINavigationController体系和UITabarController...设置导航栏背景透明度 导航栏上应该是有很多view的,我们要做的是只让背景透明,而保留标题、返回按钮。iOS没有直接给我们提供对于导航栏背景view的访问途径,那么我们只能自己来找了。

    3.1K40

    ios开发-Storyboard在多个viewcontroller之间导航的实现

    IOS SDK6/Xcode4.5开始在Storyboad中新增很多功能对可视化的开发页面布局,导航更加方便,下面就写一下各种导航的实现。...只需要选择默认的viewcontroller ,在菜单上选择editor-embed in- ?...2、下面实现导航最简单的就是next,back,只需要按住ctr直接拖线就好了,这里有一个Storyboard Segue-Identifier这个值最好填上,可以在代码里面用到 ?...这个Identifier的值可以一般在两个地方会用 1页面切换是方便传值,代码如何 ?...只要你在每个viewcontroller中重写了-(ibaction)name:(uistoryboardsegue *)segue,那么当你直接拖线指向Exit图标的时候就会出现你所有实现的方法,当你选择哪个方法就返回到实现这个方法的

    1.8K50

    Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

    Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。...使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。...修改Action Bar的图标和标题 默认情况下,系统会使用或者中icon属性指定的图片来作为ActionBar的图标,但是我们也可以改变这一默认行为。...OK,ActionBar的图标已经修改成功了,那么标题中的内容该怎样修改呢?...完全解析,使用官方推荐的最佳导航栏(下)。

    3.4K101

    Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)

    如果你还没有看过前面一篇文章的话,建议先去阅读Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)。...添加导航Tabs Tabs的应用可以算是非常广泛了,它可以使得用户非常轻松地在你的应用程序中切换不同的视图。...而Android官方更加推荐使用ActionBar中提供的Tabs功能,因为它更加的智能,可以自动适配各种屏幕的大小。.... /> 如果你只想让ActionBar使用深色系的主题,而Activity的内容部分仍然使用浅色系的主题,可以通过声明Theme.Holo.Light.DarkActionBar这个主题来实现,效果如下图所示...OK,ActionBar标题文字的颜色已经成功改成白色了,那Tab标题的文字又该怎么修改呢?

    1.6K80

    WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWPChrome)

    WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 发布于 2018-07-12 07:57...鼠标滑入划出的动画效果如何? 窗口标题栏交互 标题栏上有右键菜单,如果自己模拟,基本上这个就要自己重新实现了。...标题栏上的三大金刚 我们发现,在以上所有方法尝试完成后,还剩下右上角的三颗按钮的背景色无法定制。如果依然采用非客户区控件覆盖的方法,这三个按钮就会被遮挡,只能自己区模拟了,那是不小的工作量。...关于自绘标题栏按钮以模拟 UWP 原生按钮,可以阅读我的另一篇文章(代码太长,还是分开了好):WPF 应用完全模拟 UWP 的标题栏按钮。...如果你正在使用 UWP 开发应用,可参考林德熙的博客 win10 uwp 标题栏 来定制标题栏。

    6.7K20

    iOS视图滚动的时候控制导航条标题及公告视图的alpha(显示与隐藏)

    I 视图滚动的时候控制导航条标题及公告视图的alpha 应用场景:导航条的标题放到视图中,例如下图 ?...}]; } return _noteViw; } 1.2 滚动的时候控制导航条标题和公告视图的...应用场景:比如设计给我们的是一张黑色的返回箭头图.我们某个页面需要弄成白色的话.又不想重新设计一下新的图片 解决方法:修改tintColor 如果按钮是UIButtonTypeSystem类型的,比如修改系统导航栏的...(7.0)); III iOS跑马灯控件的封装(公告栏) 1、应用场景:公告栏和抽奖轮盘边框动画 2、CSDN文章https://blog.csdn.net/z929118967/article/...NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"公告:收款码仅用于在门店消费当面付款使用

    1.6K30

    WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWPChrome)

    鼠标滑入划出的动画效果如何? 窗口标题栏交互 标题栏上有右键菜单,如果自己模拟,基本上这个就要自己重新实现了。...标题栏上的三大金刚 我们发现,在以上所有方法尝试完成后,还剩下右上角的三颗按钮的背景色无法定制。如果依然采用非客户区控件覆盖的方法,这三个按钮就会被遮挡,只能自己区模拟了,那是不小的工作量。...然而我们还发现,Google Chrome 是定制了这三个按钮的背景色的,正在研究它的做法。 不过 Win32 原生的方法顶多只支持修改标题栏按钮的背景色,而不支持让标题栏按钮全透明。...关于自绘标题栏按钮以模拟 UWP 原生按钮,可以阅读我的另一篇文章(代码太长,还是分开了好):WPF 应用完全模拟 UWP 的标题栏按钮。...如果你正在使用 UWP 开发应用,可参考林德熙的博客 win10 uwp 标题栏 来定制标题栏。

    2.2K60

    如何使用CSS创建具有左对齐和右对齐链接的导航栏?

    使用 CSS,我们可以轻松创建导航栏,即菜单。此外,链接可以左对齐或右对齐。我们将使用 flex 来实现相同的目的。让我们看看如何。使用 创建导航栏 元素用于在网页上创建导航栏。...链接设置在以下两者之间: 导航栏,弯曲和位置固定显示屏设置为弯曲。...使用position属性的固定值固定位置:nav { display: flex; position: fixed; top:0; width: 100%; background-color..." href="#">More Info链接与 Flex 向左对齐使用 flex 属性,将 Home、Login 和 Register 链接设置在左侧。...左侧柔性项的初始长度设置为 200px:.left-links{ flex:1 1 200px;}以下是创建具有左对齐和右对齐链接的导航栏的代码: <!

    31610

    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutte

    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草...Android,增加GetX路由,屏幕适配,基础导航栏-卓伊凡换人优雅草Alex开发背景由于卓伊凡工作实在太多,工作繁忙且卓伊凡每天晚上还要直播,因此本项目已前端部分转交优雅草Alex继续并且更新-为了保证每日更新优雅草...-gitee可见·更新了getx路由·增加了屏幕适配·基础导航栏开发处理·重建了Android·布局规划了包含注册,直播,其他等页面框架·整体处理remote: Enumerating objects:...remove_alpha_ios: true # 移除 iOS 图标中的透明通道在资源目录加入assets\icons中logo.png文件再来看看index.dart中对导航栏的书写,import...JDK如果你使用的是 Android Studio,确保它使用的是与 Gradle 兼容的 JDK 版本。

    7300
    领券