详解IOS11新特性之larget title的实现

本文介绍了IOS11新特性之larget title的实现,分享给大家,具体如下:

大标题(larget title)

图层解析

小标题所处.jpg

这就是我们平常所见的Nav的title

大标题所处.jpg

这是IOS11新特性larget title

处于哪里.jpg

他们其实都在navigationBar这个view上,但是大标题先添加在navigationBar上的,看下图便知道了

上拉到顶部.png

只不过是小标题把大标题遮盖住了

//必须要设置navigationBar的prefersLargeTitles属性为YES才能够显示出大标题
self.navigationController.navigationBar.prefersLargeTitles = YES;

//样式是navigationItem的枚举 有三种
typedef NS_ENUM(NSInteger, UINavigationItemLargeTitleDisplayMode) {
/// 自动模式依赖上一个 item 的特性
UINavigationItemLargeTitleDisplayModeAutomatic,
/// 针对当前 item 总是启用大标题特性
UINavigationItemLargeTitleDisplayModeAlways,
/// Never
UINavigationItemLargeTitleDisplayModeNever,
}
self.navigationController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways;
 //为大标题添加富文本属性
 [self.navigationController.navigationBar setLargeTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],NSForegroundColorAttributeName,[UIFont systemFontOfSize:20.f],NSFontAttributeName,nil]];

APPStore的UI如何实现?

主要是大标题所在的右边有一个头像按钮

我给出一个思路吧,首先我没有找到大标题所处的View,大概是苹果没有对外开放这个view。但是我们已经知道他们都在navigationBar下了,何不直接取出navigationBar的子视图获取大标题所在的view呢?然后把你想要设置的按钮添加到该view上,最后只需要监听滚动去控制他们是否hidden

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解IOS11新特性之larget title的实现

    本文介绍了IOS11新特性之larget title的实现,分享给大家,具体如下: 大标题(larget title) 图层解析 小标题所处.jpg 这就是我们平常所见的Nav的title 大标题所处.jpg 这是IOS11新特性larget title 处于哪里.jpg 他们其实都在navigationBar这个view上,但是大标题先添加在navigationBar上的,看下图便知道了 上拉到顶部.png 只不过是小标题把大标题遮盖住了 //必须要设置navigationBar的prefer

  • 详解Java8 新特性之日期API

    Java 8 在包java.time下包含了一组全新的时间日期API.下面的例子展示了这组新API里最重要的一些部分: 1.Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数.某一个特定的时间点也可以使用Instant类来表示,Instant类也可以用来创建老的java.util.Date对象. Clock clock = Clock.systemDefaultZone();

  • 详解Java8新特性之interface中的static方法和default方法

    为什么要单独写个Java8新特性,一个原因是我目前所在的公司用的是jdk8,并且框架中用了大量的Java8的新特性,如上篇文章写到的stream方法进行过滤map集合.stream方法就是接口Collection中的default方法.所以准备专门写写关于java8新特性的文章,虽然现在10已经发布了.但还是要认真的去了解下新版本的变化. static方法 java8中为接口新增了一项功能:定义一个或者更多个静态方法.用法和普通的static方法一样. 代码示例 public interface

  • JavaScript中的Reflect对象详解(ES6新特性)

    Reflect介绍: Reflect这个对象在我的node(v4.4.3)中还没有实现, babel(6.7.7)也没有实现 ,新版本的chrome是支持的, ff比较早就支持Proxy和Reflect了,要让node支持Reflect可以安装harmony-reflect ; Reflect不是构造函数, 要使用的时候直接通过Reflect.method()调用, Reflect有的方法和Proxy差不多, 而且多数Reflect方法原生的Object已经重新实现了. 什么要使用Reflect

  • 详解Java8新特性Stream之list转map及问题解决

    List集合转Map,用到的是Stream中Collectors的toMap方法:Collectors.toMap 具体用法实例如下: //声明一个List集合 List<Person> list = new ArrayList(); list.add(new Person("1001", "小A")); list.add(new Person("1002", "小B")); list.add(new Person

  • 详解vue高级特性

    Vue为我们提供了很多高级特性,学习和掌握它们有助于提高你的代码水平. 一.watch进阶 从我们刚开始学习Vue的时候,对于侦听属性,都是简单地如下面一般使用: watch:{ a(){ //doSomething } } 实际上,Vue对watch提供了很多进阶用法. handler函数 以对象和handler函数的方式来定义一个监听属性,handler就是处理监听变动时的函数: watch:{ a:{ handler:'doSomething' } }, methods:{ doSomet

  • IOS11新特性与兼容适配

    IOS11发布以来,很多新的特性为开发工作提供了方便,小编在此给大家介绍一下IOS11的新特性以及在兼容适配等做的工作. 1. UIView变化 1.1. 更加方便的RTL边距设置 在之前的系统中我们会使用layoutMargins来获取和设置控件显示内容部分的边缘与控件边缘的距离.在iOS 11中,新增directionalLayoutMargins属性来指定边距.这两个属性的结构定义如下: typedef struct UIEdgeInsets { CGFloat top, left, bo

  • 详解Java高级特性之反射

    定义 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. 用途 在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量.方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法.当然,也不是所有的都适合反射,之前就遇到一个案例,通过反射得到的结果与预期不符.阅读源码发现,经过层层调用后在

  • 详解Spring工厂特性

    一.饿汉式创建优势 工厂创建之后,会将Spring配置文件中的所有对象都创建完成(饿汉式). 提高程序运行效率.避免多次IO,减少对象创建时间.(概念接近连接池,一次性创建好,使用时直接获取) 二.生命周期方法 自定义初始化方法:添加"init-method"属性,Spring则会在创建对象之后,调用此方法. 自定义销毁方法:添加"destroy-method"属性,Spring则会在销毁对象之前,调用此方法. 销毁:工厂的close()方法被调用之后,Spring

  • 详解iOS11关于导航栏问题

    前言 iOS11导航栏除了新加入了largeTitles和searchController两个新特性,可能是加入largeTitles的原因其结构较iOS 10发生了些变化. iOS11之前导航栏的navigationBarButton则直接添加在navigationBar上面 在iOS11之后,苹果添加了新的类来管理,可以看到titleView直接加在_UINavigationBarContentView上,UIBarButtonItem则添加在_UIButtonBarStackView上面,

随机推荐