VC对ScrollView的调整

automaticallyAdjustsScrollViewInsets

  • automaticallyAdjustsScrollViewInsets是ViewController的一个属性,指示VIewController是否需要自动调整ScrollViewInsets。
  • 默认值为YES,允许ViewController自动调整ScrollViewInsets ##VC对ScrollView的调整
  • 当automaticallyAdjustsScrollViewInsets值为YES时,viewController根据当前view中statusBar,navigaionTionBar,toolBar或者toolBar来自动调整scrollView的的contentInset和ContentOffset。使得scrollView的内容不会被这些Bar遮挡
  • 具体通过_setNavigationControllerContentInsetAdjustment相关函数实现  ##示例
    • 在一个由TabBarController导出的被Navigation封装的VC中拖一个tableview 铺满VC的View,不会被导航挡住64像素的高度。采用KVO观察
  • contentInset的top增加了statusBar高度+NavigationBar高度。buttom增加了TabBar的高度
  • contentOffset也跟着调整了-64 ###隐藏NavigationBar时
  • contentInset的top增加了statusBar的高度。buttom增加了TabBar的高度
  • contentOffset也跟着调整了-20 ##总结
  • 不管是否加在rootView上,子视图ScrollView都会被调整
  • 当ViewController的view hierachy中有ScrollView的时候,subView中index最小的scroView将会被调整。
  • 及时原先禁止了scrollView在某个方向的滚动,在view controller调整后,很有可能该方向还是能滚动 ###示例 view hierachy中有上下两个scrollview,他们都是view1的直接subview
    1. 当先把底部的scrollView加入到view1的 subView中时,调整底部scrollView
    2. 当先把顶部的scrollView加入到view1的subView中时,调整顶部 scrollView
    3. 不管是何种情况,顶部的statusBar都没有被遮挡 ###VC调整影响scrollview的展示的解决方案 当view hierarchy中有多个scrollView,VC对contentInset的调整影响展示效果时有如下解决方案
  • 设置automaticallyAdjustsScrollViewInsets,禁止VC对contentInset调整
  • 将包含多个scrollView的hierarchy封装在一个scrollView中(姑且称之为containerScrollView)。那么containerScrollView将会被调整,从而保证hierarchy正常显示

VC对ScrollView的调整的更多相关文章

  1. VC++ 两种动态调整控件位置的方法(CButton设置为Radio形式会出现错误)

    ((CButton*)GetDlgItem(IDC_CHECK1))->MoveWindow(, cy - , , ); ((CButton*)GetDlgItem(IDC_CHECK2))-& ...

  2. ScrollView设置了ContentSize高度为0,仍然能滑动的问题

    你有没有遇到过这样的情况: 对于ScrollView的不能上下滑动,设置了以下代码: _scrollViewTitle=[[UIScrollView alloc]initWithFrame:CGRec ...

  3. VC++2010下编译STLport,Boost

    VC++2010下编译STLport,Boost 最近在想向Boost转移,努力掌握Boost代码的过程中, STLport版本:5.2.1 Boost版本:1.4.6.1 (1.4.7.0也OK) ...

  4. android TextView 带滚动条,和ScrollView 用法(暂时觉得ScrollView滑动速度比较快)

    本来是想做一个显示文字信息的,当文字很多时View的高度不能超过一个固定的值,当文字很少时View的高度小于那个固定值时,按View的高度显示.因为ScrollView没有maxHeight,无法满足 ...

  5. NGUI学习笔记(六):ScrollView、Grid和Table

    下面我们来看看游戏UI开发中比较核心的开发,我称为列表开发,比如背包和各种形式不一的列表等,下面我们来看几个具体的样例:   基本上就是一些重复的制作好的多个UI控件进行排列,同时可以支持滚动,当然, ...

  6. 转:RTMPdump使用相关

    在FFMPEG中使用libRTMP的经验 FFMPEG在编译的时候可以选择支持RTMP的类库libRTMP.这样ffmpeg就可以支持rtmp://, rtmpt://, rtmpe://, rtmp ...

  7. iOS开发——开发必备OC篇&UITableView设置界面完整封装(三)

    UITableView设置界面完整封装(三) 简单MVC实现UITableView设置界面之界面跳转 创建一个需要调整的对应的控制器 在需要调整的类型模型中创建对应的属性用来实现调整类型控制器的设置 ...

  8. 最简单的基于FFMPEG的音频编码器(PCM编码为AAC)

    http://blog.csdn.net/leixiaohua1020/article/details/25430449 本文介绍一个最简单的基于FFMPEG的音频编码器.该编码器实现了PCM音频采样 ...

  9. 最简单的基于FFmpeg的推流器(以推送RTMP为例)

    ===================================================== 最简单的基于FFmpeg的推流器系列文章列表: <最简单的基于FFmpeg的推流器(以 ...

随机推荐

  1. Jquery获取checkbox属性checked为undefined

    说明:本文来自新浪博客,因为无法收藏,故直接copy过来备注,以后好查询 原网址:http://blog.sina.com.cn/s/blog_6810dfc20101jddq.html 使用jQue ...

  2. Tarjan算法---强联通分量

    1.基础知识 在有向图G,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G是一个强连通图.非强连通图有向图的极大强连通子 ...

  3. 第三讲:WCF介绍(3)

    代码 https://yunpan.cn/cPns5DkGnRGNs   密码:3913   前面我们通过一个小的例子,大概了解的WCF. 这里我们补充下  EndPoint 配置  A,B,C  中 ...

  4. 【Java每日一题】20161020

    20161019问题解析请点击今日问题下方的"[Java每日一题]20161020"查看 package Oct2016; public class Ques1020 { publ ...

  5. Delphi Berlin 10.1 for iOS 成生 info.plist 顺序改变了

    在 Delphi Seattle 10 update 1 版本(含之前版本),只要 Project > Build 会立即生成 info.plist 如果需要修改 info.plist 可以利用 ...

  6. No.015:3Sum

    问题: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0?Find all ...

  7. Java--简单的Spring AOP配置以及AOP事物管理,JDK/GCLib动态代理

    一.看一下简单的通过XML的AOP配置 1.首先创建一个简单的Student类 public class Student { private Integer age; private String n ...

  8. bootstrap框架禁用谷歌字体

    bootstrap框架禁用谷歌字体 H5框架换字体.png

  9. C#操作Excel的函数

    对于Excel的数据处理功能,大家都已经了解. 我们经常需要将数据导入到Excel,或直接打开Excel文档,读写文件操作,这需要用到ExcelHelper类,有了这个类,这些操作大大的减少我们工作量 ...

  10. springmvc 多数据源 SSM java redis

      A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,servic ...