当 automaticallyAdjustsScrollViewInsets 为 YES 时,也是默认行为,表现就比较正常了,和

edgesForExtendedLayout = UIRectEdgeNone 有啥区别? 不注意可能很难觉察

设计师可能一眼就看穿。。。 automaticallyAdjustsScrollViewInsets 为YES 时,

tableView 上下滑动时,是可以穿过导航栏&状态栏的,在他们下面有淡淡的浅浅红色

UIViewController提供了如下属性来调整视图控制器的外观:

1.edgesForExtendedLayout:这个属性属于UIExtendedEdge类型,它可以单独指定矩形的四条边,也可以单独指定、指定全部、全部不指定。

使用edgesForExtendedLayout指定视图的哪条边需要扩展,不用理会操作栏的透明度。这个属性的默认值是UIRectEdgeAll。

2.extendedLayoutIncludesOpaqueBars:

如果你使用了不透明的操作栏,设置edgesForExtendedLayout的时候也请将 extendedLayoutIncludesOpaqueBars的值设置为No(默认值是YES)。

3.automaticallyAdjustsScrollViewInsets:如果你不想让scroll view的内容自动调整,将这个属性设为NO(默认值YES)。

extendedLayoutIncludesOpaqueBars

首先看下官方解释,默认 NO, 但是Bar 的默认属性是 透明的。。。也就是说只有在不透明下才有用

但是,测试结果很软肋,基本区别不大。。。但是对于解决一些Bug 是还是起作用的SearchBar的跳动问题

通常是这几个方法一起使用 来解决iOS7 导航栏透明的问题

1 self.edgesForExtendedLayout = UIRectEdgeNone;

2 self.extendedLayoutIncludesOpaqueBars = NO;

3 self.modalPresentationCapturesStatusBarAppearance = NO;

SearchBar的跳动问题

问题详情:

首先是TableView 作为 NavigationController 的 RootViewContrller, 然后UISearchBar

     添加到TableView 的 headView 上,同时 UISearchDisplayController 的 contentsController

为tableView, SearchBar 为tableView headview 上的 searhBar,然后点击后 searchBar 会平滑

移动到 NavgationBar 的位置,点击取消或蒙版的,searhBar 会跳动下再回到正确的位置。

解决办法:

在控制器的viewdidload: 中加入

[self setAutomaticallyAdjustsScrollViewInsets:YES];

[self setExtendedLayoutIncludesOpaqueBars:YES];

查找原因过程:

首先是看到 FontAwesome 的搜索没有问题然后就看其实现,没有改变UINavigationBar的默认颜色,

   没有UINavigationItem,然后就将其全部注释,然后问题依然, 再 设置UINavigationBar 的 translucent 属性

为YES,接着打开 UINavigationBar 的背景色,然后问题又出现了,由于背景色要同时设置状态栏的颜色,所以设置代码为

[[UINavigationBar appearance]setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

同时不使用 图片的方式,通过遍历系统子控件设UINavigationBar 的设置背景色同样也会导致跳动,

问题就可能是系统SDK的问题了,猜测而已。。然后就各种关键词搜。。最后。。。

导航栏 & 状态栏覆盖的更多相关文章

  1. Android 4.4 沉浸式透明状态栏与导航栏

    Android 系统自4.2 開始 UI 上就没多大改变,4.4 也仅仅是添加了透明状态栏与导航栏的功能,如图 那么如今我就来给大家解说下怎样使用这个新特性,让你的 app 尾随潮流,当然假设你不在乎 ...

  2. 兼容 Android 4.4 透明状态栏与导航栏

    http://www.apkbus.com/Android-163388-1-1.html?_dsign=73d41229 android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加 ...

  3. ios 获取导航栏和状态栏高度,针对iPhoneX

    因为iPhoneX的产生,原本的导航栏再也不是44了,那么会出现什么问题呢?在隐藏导航栏的页面,原本的高度要向上调整一个导航栏+状态栏的高度.那么iPhoneX的导航栏高度不是44了,我们需要手动获取 ...

  4. uni-app动态修改顶部导航栏标题

    动态修改顶部导航栏标题有两种方法方式一.使用自定义到导航栏,覆盖原生导航栏 缺点:自定义到导航栏性能远远不如原生导航栏,手机顶部状态栏区域会被页面内容覆盖,这是因为窗体是沉浸式的原因,即全屏可写内容: ...

  5. Nuxt内导航栏的两种实现方式

    方式一 | 通过嵌套路由实现 在pages页面根据nuxt的路由规则,建立页面 1. 创建文件目录及文件 根据规则,如果要创建子路由,子路由的文件夹名字,必须和父路由名字相同 所以,我们的文件夹也为i ...

  6. android -------- 沉浸式状态栏和沉浸式导航栏(ImmersionBar)

    android 4.4以上沉浸式状态栏和沉浸式导航栏管理,包括状态栏字体颜色,适用于Activity.Fragment.DialogFragment.Dialog,并且适配刘海屏,适配软键盘弹出等问题 ...

  7. Android状态栏和导航栏

    1.隐藏状态栏或导航栏 View decordView = getWindow().getDecorView(); /*SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI ...

  8. 分别用ToolBar和自定义导航栏实现沉浸式状态栏

    一.ToolBar 1.在build.gradle中添加依赖,例如: compile 'com.android.support:appcompat-v7:23.4.0' 2.去掉应用的ActionBa ...

  9. iOS 系统根据导航栏和状态栏自动修改布局

    问题 条件:1.有一个全屏大小的带导航的controller 2.隐藏导航栏,最顶上还会留出状态栏的位置,而不是全屏显示 解决方法 self.automaticallyAdjustsScrollVie ...

随机推荐

  1. iOS 本地自动打包工具

    1.为什么要自动打包工具? 每修改一个问题,测试都让你打包一个上传fir , 你要clean -> 编译打包 -> 上传fir -> 通知测试.而且打包速度好慢,太浪费时间了.如果有 ...

  2. 使用Jsoup帮助解析具有html标签的数据和解析网页

    下载Jsoup包后导入 /** * Created by YGW on 2016/4/17. * 显示公告的详细内容 */public class PressFragment extends Frag ...

  3. 关于Git中的一些常用的命令

    深入了解git的checkout命令 检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令. 因为这条命令会重写工作区.检出命令的用法如下: 用法一: git che ...

  4. Linux编程简介

    Linux编程可以分为Shell(如BASH.TCSH.GAWK.Perl.Tcl和Tk等)编程和高级语言(C语言,C++语言,java语言等)编程,Linux程序需要首先转化为低级机器语言即所谓的二 ...

  5. [MSDN]关键字查询语言 (KQL) 语法参考

    MSDN:http://msdn.microsoft.com/library/ee558911(v=office.15) 了解如何构造 SharePoint 2013 中的搜索功能 的 KQL 查询. ...

  6. C#学习笔记2:Iframe框架、MD5加密

    1.static void Main()的问题. static void Main(){……//代码}static void Main(string[] args){……//代码}两者的不同点?str ...

  7. 20160522--20160526----mybatis入门基础

    一.基础知识: 1.对原生态jdbc程序(单独使用jdbc开发)问题总结  2.mybatis框架原理 (掌握)  3.mybatis入门程序  4.用户的增.删.改.查  5.SqlMapConfi ...

  8. 第五篇、常用的SQL语句和函数介绍

    简介: 在使用到sqlite3的时候,常常需要写一些SQL语句,现将常用到的部分语句稍微总结以下,由于个人习惯,关键字用大写. 附: /*简单约束*/ CREATE TABLE IF NOT EXIS ...

  9. html19-----视频,音乐的插入

    视频格式 MP4 格式是一种新的即将普及的因特网视频格式.HTML5 .Flash 播放器以及优酷等视频网站均支持它. 格式 文件 描述 AVI .avi AVI (Audio Video Inter ...

  10. 【html】【10】div布局[div水平垂直居中]

    必看参考: http://www.jb51.net/css/28259.html 让div居中对齐缩写形式为: .style{margin:0 auto;} 数字0 表示上下边距是0.可以按照需要设置 ...