1. frames和 bounds理解

frame:     是子控件相对于 父控件内容左上角为坐标原点
bounds:    contentView相对于自己控件坐标位置,控件内部内容区域

滚动的时候frame和bounds体现:

frame和bounds理解图:

如果有顶部内边距的时候,理解图:

程序代码:

#import "ViewController.h"@interface ViewController ()<UIScrollViewDelegate>@property (strong, nonatomic) UIScrollView *myscrollview;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];UIScrollView* scroll=[[UIScrollView alloc] init];
// 设置坐标scroll.frame= CGRectMake(100, 100, 200, 400);
//设置 水平不可以不能动,垂直可以滚动scroll.contentSize=CGSizeMake(0, 500);scroll.backgroundColor=[UIColor orangeColor];//  scroll.contentInset= UIEdgeInsetsMake(60, 0, 0, 0);self.myscrollview=scroll;// 设置代理scroll.delegate=self;// 添加[self.view addSubview:scroll];UISwitch* switch1= [[UISwitch  alloc] init];[self.myscrollview addSubview:switch1];
}-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
// 相等,根据上图理解NSLog(@"bounds=%@,offset=%@", NSStringFromCGPoint(self.myscrollview.bounds.origin),NSStringFromCGPoint(self.myscrollview.contentOffset));
// 相等,根据上图理解
NSLog(@"frame.size=%@,bounds.size=%@", NSStringFromCGSize(self.myscrollview.frame.size),NSStringFromCGSize(self.myscrollview.bounds.size));
}
@end

总结: self.myscrollview.bounds.origin)== 
          NSStringFromCGPoint(self.myscrollview.contentOffset)

NSStringFromCGSize(self.myscrollview.frame.size) == 
          NSStringFromCGSize(self.myscrollview.bounds.size);

设置内边距:
     scroll.contentInset= UIEdgeInsetsMake(60, 0, 0, 0);  不会影响bouds的size

2.   UITableView中默认 内边距和offset设置

uitableview显示内容的时候,如下图,会内容不会被导航栏覆盖,uitableview内部设置了默认的内边距和offset

内部代码设置:

- (void)viewDidLoad {[super viewDidLoad];// self.tableView.automaticallyAdjustsScrollIndicatorInsets=NO; // 设置sb中uiscrollview,uitableview不自动设置 内边距// 1. tableView会设置默认内边距,下滑避免内容被遮挡// self.tableView.contentInset= UIEdgeInsetsMake(64, 0, 0, 0);//  self.tableView.contentOffset = CGPointMake(0, -64);//  offset:{0, -64}NSLog(@"offset:%@",NSStringFromCGPoint( self.tableView.contentOffset));//  bounds={{0, -64}, {414, 736}}NSLog(@"bounds=%@",NSStringFromCGRect(self.tableView.bounds));// 2. 设置底部内边距,避免底部内容被遮挡//   self.tableView.contentInset=UIEdgeInsetsMake(0, 0, 49, 0);
}

ios frame和bounds区别相关推荐

  1. iOS开发-View中frame和bounds区别

    开发中调整View的时候的经常会遇到frame和bounds,刚开始看的时候不是很清楚,不过看了一下官方文档,frame是确定视图在父视图中的位置,和本身的大小,bounds确定可以确定子视图在当前视 ...

  2. ios开发之UIView的frame、bounds跟center属性的区别(附图)

    博文暂时想到什么写什么,不顺理成章,不顺章成篇. 先看几个概念 坐标点Poit:向右侧为X轴正方向的值x,原点下侧为Y轴正方向的值y 大小Size:由宽度width和高度height构成,表示一个矩形 ...

  3. iOS中frame和Bounds之间的区别

    frame frame是每个view必备的属性,代表的是当前视图的位置和大小,没有设置他,当前视图是看不到的.位置需要有参照物才能确定,数学中我们用坐标系来确定坐标系中的某个点的位置,iOS中有他特有 ...

  4. ios 设置属性的center_ios-坐标系统(详解UIView的frame、bounds跟center属性[图])

    1.概要 翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下: frame:描述当前视图在其父视图中的位置和大小. bounds:描述当前视图在其自身坐标系统中的位置和大小. center:描 ...

  5. 【转】frame与bounds的区别比较

    翻译文档上的bounds是指这个view在它自己坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小区别主要在坐标系这一块.很明显一个是自己为原点的坐标系,一个 ...

  6. iOS——frame bounds

    前言 在iOS中我们经常会对控件位置调整,利用到了bounds和frame,但是一直没搞懂他俩的区别,今天记录一下. frame和bounds简介 frame: 该view在父view坐标系统中的位置 ...

  7. (0046) iOS开发之View的frame和bounds之解惑

    iOS view的frame和bounds之解惑 frame: 该view在父view坐标系统中的位置和大小.(参照点是,父亲的坐标系统) bounds:该view在本地坐标系统中的位置和大小.(参照 ...

  8. iOS开发——frame和bounds详解

    在iOS的UI开发中,frame和bounds是两个非常容易搞混的概念,而很多开发者在实际项目中也很少去区分,因此会导致出现一些意想不到的问题.本篇博客以实际代码的方式来学习frame和bounds的 ...

  9. frame 和 bounds的区别

    这篇是见过写的最为详细易懂的文章: frame与bounds的区别详解 - 简书 简单概括下: 1.bounds和frame都是属于CGRect类型的结构体,系统的定义如下,包含一个CGPoint(起 ...

  10. frame与bounds的区别比较

    翻译文档上的
bounds是指这个view在它自己坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小
区别主要在坐标系这一块.

很明显一个是自己为原点的坐标 ...

最新文章

  1. LeetCode:345. Reverse Vowels of a String
  2. nginx+FastCGI到底是谁影响超时时间
  3. 新手探索NLP(十五)——终章
  4. java pashone_java – 如何使用onejar Maven插件在清单中设置附加的Class-Path条目?
  5. 以太网口差分电平_以太网接口学习笔记
  6. 有关 Form 的一些代码的标准写法
  7. django开发商城(提供初始数据,商城首页及购物车)
  8. 谷歌云盘超大文件快速下载方法
  9. directsound播放32位float类型的pcm格式音频
  10. Git版本控制管理(一)--安装
  11. stvd能编译c语言,stvd+stm8s单片机程序编译报错
  12. python normalize函数_Python normalize包_程序模块 - PyPI - Python中文网
  13. 《我要进大厂》- Java基础夺命连环10问,你能坚持到第几问?(面向对象基础篇)
  14. 又五年后回头再看我的程序员生涯
  15. Android Killer--安卓反编译工具
  16. 奇虎360scribe日志采集系统
  17. docker 批量删除镜像
  18. html鼠标划到背景图显示文字,用css3实现鼠标移入图片后显示其他文字/图片的效果...
  19. vmware FreeBSD安装
  20. Android 手机十大必备软件

热门文章

  1. vscode 脑图插件mindmap
  2. 实现基于小米的电子商务平台架构
  3. python第二版课后答案第七章7.5_IDA7.5 启动基础配置
  4. 学习方法和态度比什么都重要
  5. spark web ui怎么看
  6. 【原生】JS 获取今天日期
  7. 小米手机系统服务组件是干什么的_2799 元!小米 1 亿像素拍照手机来了,还有 MIUI 系统的小米手表...
  8. 十月上旬百度 阿里巴巴 迅雷搜狗最新面试七十题 第201 270题
  9. Windows环境下搭建SQL注入环境(sqli-labs)
  10. python如何debug找到错误_调试python,我找不到哪里出错了?