iOS11 SytleTitleController  仿大标题 风格 导航栏

仿 iOS11 大导航标题 风格 UI 适用范围 iOS8 +

前言

iOS11全面应用大标题设计,(岂止于大—— 比逼格更逼格!)bigger than bigger. 突出的大标题 特点:

  • 突出的大而粗的标题
  • iOS 11标题设计的大且粗,把醒目优先级提到了最高
  • 明确整个page核心,结构更明朗,让用户减少疑惑 很多设计师把Apple、google或者微软的用户界面标准奉若神明,觉得只要是他们说的,都是对的 好看不好看,我相信必定还会引起国内的国产手机UI设计追“大苹果风”。

如果你们的设计师也已经开始设计了这种大标题导航的UI,并且让你适配到iOS11以下的iOS10 iOS9 iOS8 那么特别希望 我写的 这个小demo 能够帮到你,毕竟维护自家产品一般不可能只限制用户用iOS11系统吧。。。

效果图是这样的:(动图地址)

为了使用方便,本人特意写了类别方法 UIViewController+HFDynamicBar.h

#import <UIKit/UIKit.h>
#import "HFDynamicNavView.h" @interface UIViewController (HFDynamicBar) @property (nonatomic, strong) HFDynamicNavView *dynamicNavView; /**
设置 展示导航大标题样式 UI
*/
- (void)defaultShowDynamicNav; /**
展示滚动 导航折叠Animation 就在滚动代理方法 UIScrollViewDelegate 中实现该方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView @param scrollView scrollView
*/
- (void)showDynamicBarAnimationWithScrollView:(UIScrollView *)scrollView; @end

使用方法 分5步:

[self defaultShowDynamicNav];//导航大标题展示 【1】放在tableView 的上层
[tableView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(@(self.dynamicNavView.dynamicBottom));/////修改起始高度 【2】这个起始位置相对还是64 make.left.right.bottom.equalTo(self.view); }];
tableView.contentInset = UIEdgeInsetsMake(self.dynamicNavView.bigTitleView.hf_height, 0, 0, 0);////这行代码必须有 【3】为了连贯联动效果
[tableView setContentOffset:CGPointMake(self.view.hf_width, - self.dynamicNavView.bigTitleView.hf_height) animated:NO];////这行代码必须有 【4】为了连贯联动效果
[self showDynamicBarAnimationWithScrollView:scrollView]; //该代码选择实现 需要导航折叠Animation 就要在该代理方法里面实现 不滚动就是默认大标题 【5】选择性实现

可扩展

暴露的属性都是可读写的,任何需要的地方可直接扩展 (比如添加右边导航按钮 。。。) 注意要点:标题居中,约束合法

 

iOS11 仿大标题 导航栏的更多相关文章

  1. IOS11 - UINavigationItem大标题,搜索栏实现

    1.新建模型 class Contact: NSObject { var name : String? var mobile : String?{ didSet{ { mobileString = m ...

  2. Android 高仿新浪微博底部导航栏,实现双击首页Tab,页面的ListView滚动、刷新

    现在很多APP,如微信.QQ.微博等等,它们的主页面都无一例外的选择使用底部Tab导航, 通过这种方式,可以很好的把页面层级分化,很好的提高用户体验.相信,很多Android开发者,都使用到过这种经典 ...

  3. Flutter沉浸式状态栏/AppBar导航栏/仿咸鱼底部凸起导航

    Flutter中如何实现沉浸式透明Statusbar状态栏效果? 如下图:状态栏是指android手机顶部显示手机状态信息的位置.android 自4.4开始新加入透明状态栏功能,状态栏可以自定义颜色 ...

  4. 简单仿京东"筛选"界面 双导航栏控制器共存 by Nicky.Tsui

    大概就是这么一个效果 如图.大概可以看到,"筛选"视图后面有一层视图盖住了后面原来的视图 那么我们可以通过加一个view到导航栏控制器的view里面来实现 //该view作为全局变 ...

  5. ViewPager+GridView实现首页导航栏布局分页效果

    如图是效果图用ViewPager+GridView实现首页导航栏布局分页效果来实现的效果 Demo下载地址:http://download.csdn.net/detail/qq_29774291/96 ...

  6. 网页导航栏 html + css的代码实现

    一般来讲,我们的网页导航栏是这么个模式来构建在结构上:1.首先我们需要给导航栏的div 给个类名 一般为nav2.然后就是一个无序表格 3.由于导航栏的文字一般都是链接用来跳转页面 要在li里面包含一 ...

  7. 微信小程序 自定义头部导航栏和导航栏背景图片 navigationStyle

    ​ 这两天因为要做一个带背景的小程序头,哭了,小程序导航栏有背景也就算了,还得让导航栏上的背景顺下来,心态小崩.现在可以单独设置一个页面的小程序头了,但是前提是要微信7.0以上的版本,考虑到兼容性问题 ...

  8. 自定义iOS7导航栏背景,标题和返回按钮文字颜色

    在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字Col ...

  9. IOS 改变导航栏返回按钮的标题

    IOS 改变导航栏返回按钮的标题   下午又找到了一个新的方法 这个方法不错 暂时没有发现异常的地方. 新写的App中需要使用UINavigationController对各个页面进行导航,但由于第一 ...

随机推荐

  1. mock实例方法

    1.Mockito.when(categoryService.queryTopCategory("1")).thenReturn(categories);//返回的是list列表, ...

  2. Redis遍历所有key的两个命令 -- KEYS 和 SCAN

    当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令: KEYS pattern   官网对于KEYS命令有一个提示: KEYS 的速度非常快,例如,Redis在一个有1 ...

  3. [搬家]新域名 akagi201.org

    现在感觉自己做了好多年的垃圾信息制造者 以后只在网络上发布有用的东西, 垃圾或者对别人没用的东西就放到自己的硬盘上把 http://akagi201.org

  4. Mary的加盟

    Mary的加盟 1995年早些时候,我们招收了一个合同编制员——Mary Campione.她和我在后来的工作互助中相识.Mary的工作是帮助程序员使用平台特色如线程.我们很快意识到我们的工作如此相似 ...

  5. Hook length formula 学习笔记 UVALive 6625

    最近做到一个关于杨氏矩阵的题目. UVALive 6625 题目大意是用n以内的数填充杨氏矩阵,要求行严格递增,列不严格递增. 求方案数. 数据范围很小,我直接上爆搜,结果TLE了. 后来发现一位学长 ...

  6. DBCP与C3P0数据库连接池

    数据库连接池是做什么的? 学过计算机网络的都知道,在一个内部局域网中.大部分用的都是私有地址,要想和外部 打交道,必须要有相应的合法外部地址相相应.然而内部用户数量巨大.一台机子一个外部IP 是不现实 ...

  7. hdu 2586(最近公共祖先LCA)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 思路:在求解最近公共祖先的问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好 ...

  8. greenlet:轻量级的并发编程

    1 关于greenlet greelet指的是使用一个任务调度器和一些生成器或者协程实现协作式用户空间多线程的一种伪并发机制,即所谓的微线程. greelet机制的主要思想是:生成器函数或者协程函数中 ...

  9. socket编码问题

    server.py import socket ip_port = ('127.0.0.1',9999) sk = socket.socket() sk.bind(ip_port) sk.listen ...

  10. SQL Server 阻止了对组件“Ad Hoc Distributed Queries”的 STATEMENT“OpenRowset/OpenDatasource”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用“Ad Hoc Distributed Queries”。有关启用“Ad Hoc Distributed Queries”

    1.开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句: exec sp_configure reconfigure exec sp_configure r ...