好大一个坑。--谈谈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. php curl vs python提交多维数组+文件

    总结: 1.data数据格式 2.php post 格式无需json_encode(关联数组,所以可以绕弯)  参考:http://bbs.csdn.net/topics/390645553?page ...

  2. starUML 建模

    1. starUML 序列图建模 参考: [1]. starUML 序列图建模.  http://blog.csdn.net/u013474104/article/details/43818691

  3. mac配置vim-go

    基本的设置信息(参考网址:http://hessian.cn/p/1026.html): "还是配置/.vimrc文件. syn on "语法支持 set laststatus=2 ...

  4. 登录失败。该登录名来自不受信任的域,不能与 Windows 身份验证一起使用

    登录失败.该登录名来自不受信任的域,不能与 Windows 身份验证一起使用 使用sever sql  远程连接数据库的时候遇到了这个问题,我用的是ADO.NET 实体数据模型,有web.config ...

  5. Egret中的对象池ObjectPool

    为了可以让对象复用,防止大量重复创建对象,导致资源浪费,使用对象池来管理. 对象池具体含义作用,自行百度. 一 对象池A 二 对象池B 三 字符串key和对象key的效率 一 对象池A /** * 对 ...

  6. Egret版本更新(H5增加版本号)

    由于浏览器缓存问题.在服务器上更新了新的图片等资源以后,客户端并不会下载最新的. 关于浏览器缓存机制,可自行百度. Egret中资源更新解决方案有以下: 一 资源名后增加版本号 二 重写Egret引擎 ...

  7. 30、shiro框架入门2,关于Realm

    1.Jdbc的Realm链接,并且获取权限 首先创建shiro-jdbc.ini的配置文件,主要配置链接数据库的信息 配置文件中的内容如下所示 1.变量名=全限定类名会自动创建一个类实例 2.变量名. ...

  8. 错误:Unsupported major.minor version 51.0(jdk版本错误)的解决方法

    错误:Unsupported major.minor version 51.0(jdk版本错误)的解决方法 java.lang.UnsupportedClassVersionError: org/ap ...

  9. HTML、CSS和JS

    一.html 1.web流程中的HTML HTML---->赤裸裸的人 CSS  ---->穿华丽的衣服 JS    ---->让人动起来 浏览器和server端之间的通信本质上是字 ...

  10. 7.29 H5学习笔记

    常用实体字符小于号  < 大于号  > 和号  & 引号  " 撇号  &apos; 分  ¢ 镑  £ 日元  ¥ 欧元  € 小节  § 版权  © 注册  ...