UIViewController的View显示在导航栏下面如何解决?

摘要:
在ios 7之前的版本中,UIViewController中的视图将在显示后自动调整以删除导航栏的高度,控件将自动放置在导航栏下方。因此,带有导航栏的应用程序界面中的一些控件将被导航栏覆盖。此属性指定当条形图使用不透明图像时,是否将视图扩展到条形图所在的区域,而edgesForExtendedLayout指定当条形使用不透明图像的时候,是否将该视图扩展到该条形图所在区域。

ios7之前的版本中UIViewController中的view在显示后会自动调整为去掉导航栏的高度的,控件会自动在导航栏以下摆放。

在iOS7中UIViewController的wantsFullScreenLayout属性被舍弃了,所有的UIViewController创建后默认就是full Screen的,因此如果带导航栏的应用界面中的部分控件会被导航栏覆盖掉。

解决方案:可以使用ios7中UIViewController新增的属性extendLayoutIncludesOpaqueBars和edgesForExtendedLayout来解决。

其中这个属性指定了当bar使用不透明图片时,试图是否延伸至bar所在区域,默认值为NO。而edgesForExtendedLayout

其中这个属性指定了当Bar使用了不透明图片时,视图是否延伸至Bar所在区域,默认值时NO。而edgesForExtendedLayout则是表示视图是否覆盖到四周的区域,默认是UIRectEdgeAll,即上下左右四个方向都会覆盖,那么为让顶部不进行延伸到导航栏覆盖的区域,我们可以把顶部区域延伸去掉。

上面是抄来的(看不懂没关系), 下面才是重点:

UIViewController的View和导航栏的显示是这样的, 默认的, 如果导航栏设置为有透明度的(默认就是半透明的), UIViewController的View就会被导航栏覆盖

如果不想被覆盖, 可以使用以下代码解决(控制器中调用):

self.edgesForExtendedLayout = UIRectEdgeNone;

反之, 如果导航栏是不透明的, 默认UIViewController的View就会往下移, 在导航栏下显示, 如果不想往下移, 可以实现如下代码(控制器中调用):

self.extendedLayoutIncludesOpaqueBars = YES;

ps: 仅对UIViewController而言, UITableViewController这里不是测试对象



作者:VincentHK
链接:https://www.jianshu.com/p/f1ea1c192c1e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

免责声明:文章转载自《UIViewController的View显示在导航栏下面如何解决?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Selenium Webdirver API(1)sqlmap介绍与使用案例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何通过Word在博客园发布博客

目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客。使用Word写博客需要在第三方博客平台注册帐号,且需要第三方博客平台提供API接口。目前的有的博客平台均已关闭博客接口,所以无法使用Word来发布博客。 2.发布到博客或公...

IDEA中统计项目代码的总行数

方法    安装“Statistic”插件步骤    打开idea设置界面,选择 plugins标签   点击下面“Browse repositories”按扭,浏览插件仓库   搜索“Statistic”插件,点击 install   根据提示重启 Idea   在idea下方任务栏,选择点击“Statistic”,然后点击 “refresh”,就会看到...

解决 VSCode git commit 时 No such file or directory 报错问题

在git 进行 commit 时出现了 Git: .git/hooks/pre-commit: line 2: ./node_modules/pre-commit/hook: No such file or directory 报错 在命令行里运行以下命令回车即可解决。 npx husky install 作者:胡小喵_链接:https://www.jia...

Commit Monitor–svn监控工具

SVN更改通知的工具,在这里分享给大家。 自己负责的模块代码有时被同事修改,但是没有知会,也不容易了解到具体的改动内容,可能造成各种各样的问题。这里推荐一个工具Commit Monitor,可以监控svn仓库的提交记录,并及时通知,非常方便。一切尽在掌握。 下载地址,开源软件,可以放心~ http://code.google.com/p/commitmon...

速度与精度的结合

速度与精度的结合 - EfficientNet 详解   来自 google 的 EfficientNet,论文提出了一种多维度混合的模型放缩方法。论文链接(文末有代码): https://arxiv.org/pdf/1905.11946.pdf​arxiv.org 作者希望找到一个可以同时兼顾速度与精度的模型放缩方法,为此,作者重新审视了前人提出的模型放...

很酷的页面布局框架

建高楼大厦时,我们总是先用钢筋水泥搭好骨架,然后再加砖添瓦,布置每套房屋。编写一个网页也是这样,须先将布局框架搭好稳固,之后才能游刃有余。本博文阐述如何实现了两栏布局(main栏和sub栏),三栏布局(main栏、sub栏和extra栏),以及布局中各栏的排列顺序。 本示例布局框架具有以下特性: 跨浏览器:兼容IE6。 稳固性:布局稳固,不受内容的影响。...