好大一个坑。--谈谈view偏移问题:

先上张图,

图中白色部分。上面的是从网上找的资源。将导航栏隐藏之后用collectionView加上去而实现的滑动标签功能。开始以为是代码中的问题。然后仔细推敲了一遍别人代码中的相关模块。发现过了一天并没有找到解决的地方。我一直以为是哪儿设置的属性。例如frame什么的。今天早上来了之后。有钻研了下。发现了几个没有看到过的属性。可疑。的确可疑。

然后改了之后发现问题解决了。

先提出这两个属性吧。

sele.edgesForExtendedLayout 属性

self.automaticallyAdjustsScrollViewInsets 属性 

在IOS7以后viewController开始使用全屏布局的,而且是默认的行为通常涉及到布局就离不开这个属性edgesForExtendedlayout,   它是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,也就是说,如果即使视图中有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。因为一般为了不让tableview不延伸到navigationBar下面,属性设置为UIRectEdgeNone。

那么此时发现导航栏变灰了,这样设置: self.navigationController,navigationbar.translucent = No;

*NavigationBar的translucent属性:看下官方API文档。

翻译过来大致是 :translucent默认属性是yes,如果navigationBar有自定义的背景图,那么当属性置为Yes,且放了一张不透明的图,那么效果是自动会把这个图弄成半透明;

如果设置为No,放了一半透明的图:

如果barstyle是UIBarStyleBlack,效果是半透明的图自动加上黑色背景。

如果是UIBarStyleDefault,效果是半透明的图自动加上白色背景。

如果设置了barTintColor,效果是半透明的图自动加上barTintColor的背景。

IOS7 viewController新增属性automaticallyAdjustsScrollViewInsets,即是否根据按所在界面的navigationBar与tabbar的高度,自动调整scrollview的inset。

即UITableView顶部有一个空白区域。

作死遇到的坑--view向下偏移的更多相关文章

  1. self.navigationController.navigationBar.translucent = YES航栏的属性默认 YES是透明效果并且主view不会偏移 NO是导航栏不透明 主view会向下偏移64px

    交友:微信号 dwjluck2013 从iOS7开始,苹果对navigationBar进行了模糊处理,并把self.navigationController.navigationBar.translu ...

  2. iOS开发之Bug--UITextField使用时文字向下偏移问题

    这个问题,在之前项目中偶然遇到过,但是bug不明显,也不知道具体是哪种重现方式重现的,所以一直暂时略过了,但是随着项目的系统的规模变大,代码量越多, 这个问题出现的越来越明显了. 于是就只能靠百度和g ...

  3. ios UITableView顶部向下偏移

    //设置向下偏移20[self.tableView setContentInset:UIEdgeInsetsMake(20,0,0,0)];

  4. 搭建laravel5全面教学,爬坑(windows下)。

    1.首先下载屌比的Composer 2.然后下载composer.phar 3.然后下载最新版Laravel框架 4.将下载下来的laravel压缩包扔到htdocs目录下(扔到别的目录没试过) 5. ...

  5. 转:【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber

    http://www.bubuko.com/infodetail-382485.html 标签:des   class   style   代码   html   使用   问题   文件   数据 ...

  6. 关于ios11 tableView和ScrollView受导航栏影响向下偏移的问题

    看到网上说法ios11中automaticallyAdjustsScrollViewInsets属性被废弃,所以要设置tableView.contentInsetAdjustmentBehavior ...

  7. tpadmin的坑收集 nginx下配置tp5失败

    如下: 1.ADMIN模块如要关联查询,model的函数名一定不要有“_”下划线,否则找不到 /common/model/**.php 如果把函数名file写成“**_file”,调用时,$vo.** ...

  8. [Web 前端] inline-block元素设置overflow:hidden属性导致相邻行内元素向下偏移

    cp from : https://blog.csdn.net/iefreer/article/details/50421025 在表单修改界面中常会使用一个标签.一个内容加一个修改按钮来组成单行界面 ...

  9. Vue2.0史上最全入坑教程(下)—— 实战案例

    书接上文 前言:经过前两节的学习,我们已经可以创建一个vue工程了.下面我们将一起来学习制作一个简单的实战案例. 说明:默认我们已经用vue-cli(vue脚手架或称前端自动化构建工具)创建好项目了 ...

随机推荐

  1. 常用vim设置

    set tabstop=4set shiftwidth=4set expandtabset hlsearchset cindent set autoindent set tabstop=4是设TAB宽 ...

  2. string和vector

    一.String对象 1.string s;      s.size(); //返回的是s中字符的个数,也是s的长度: //string对象最后没有加空字符 //size()返回的是string::s ...

  3. Uiautomator自动编译运行脚本

    Uiautomator的编译运行过程需要输入好几个命令,太麻烦. 花了点时间写了个简单的bat.方便多了.id输入当前使用的SDK ID号(android list target命令可以查看到),cl ...

  4. 【转】linux下skype的安装使用

    http://hi.baidu.com/24_jason/item/f85725306c7dbcf5df2221ca Fedora 18/17, CentOS/RHEL/SL 6.3 安装 Skype ...

  5. (Java和C++)二进制date数据写进android保存为yuv格式

    Java实现函数: String strpath = "/storage/emulated/0/DCIM/" +  i + "output.yuv"; bool ...

  6. SQL Server数据库表重置自增主键号(通常是指ID)

    执行 DBCC CHECKIDENT ('table_name', NORESEED) 以确定列中的当前最大值 然后使用 DBCC CHECKIDENT ('table_name', RESEED,n ...

  7. Hibernate 一级二级缓存

    1.一级缓存与session关联,session关闭时,缓存数据消失: 2.一级缓存无法自我控制缓存的数量,需考虑缓存溢出: 3.二级缓存与sessionFactory关联,当sessionFacto ...

  8. Eclipse中Maven项目添加jar包

    各个标签的含义如下: Overview:显示maven项目的一些基本信息Dependencies:添加jar包的页面Plugins:添加maven插件的页面.比如tomcat-maven-plugin ...

  9. 高版本Chrome不支持showModalDialog

    高版本Chrome不支持window.showModalDialog,可用window.open代替 var url = "https://www.baidu.com"; var ...

  10. 【Android UI设计与开发】第05期:引导界面(五)实现应用程序只启动一次引导界面

    [Android UI设计与开发]第05期:引导界面(五)实现应用程序只启动一次引导界面 jingqing 发表于 2013-7-11 14:42:02 浏览(229501) 这篇文章算是对整个引导界 ...