iOS 基础-----关于UIView 的 frame 与 bounds
2015-10-15 14:16
501 查看
首先,对于frame 大家都很熟悉,是当前view ,相对于其父视图view 的坐标,例如:
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(10, 60, 300, 300)];
view1.backgroundColor = [UIColor redColor];
[self.view addSubview: view1];
view1 的坐标就是针对self.view 所设置的。其中view1 距 self.view 的左侧边缘是10px,距self.view 的顶部 60px。
现在我们设置view1 的bounds ,
view1.bounds = CGRectMake(-10, 60, 300, 300);
然后运行,你会发现view1的位置没有任何变化,这就对了,bounds是针对view1自身坐标,view1 的bounds 的x ,y 默认是其左上顶点(0,0);运行如图:
现在,我们在view1 上加view2,
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(10, 40, 100, 100)];
view2.backgroundColor = [UIColor yellowColor];
[view1 addSubview: view2];
运行如下图:
也就是说,对bounds 的设置 会对view 上的子视图的布局产生影响,不理解的同学,可以自己多试一试,然后就会印象深刻点。
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(10, 60, 300, 300)];
view1.backgroundColor = [UIColor redColor];
[self.view addSubview: view1];
view1 的坐标就是针对self.view 所设置的。其中view1 距 self.view 的左侧边缘是10px,距self.view 的顶部 60px。
现在我们设置view1 的bounds ,
view1.bounds = CGRectMake(-10, 60, 300, 300);
然后运行,你会发现view1的位置没有任何变化,这就对了,bounds是针对view1自身坐标,view1 的bounds 的x ,y 默认是其左上顶点(0,0);运行如图:
现在,我们在view1 上加view2,
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(10, 40, 100, 100)];
view2.backgroundColor = [UIColor yellowColor];
[view1 addSubview: view2];
运行如下图:
也就是说,对bounds 的设置 会对view 上的子视图的布局产生影响,不理解的同学,可以自己多试一试,然后就会印象深刻点。
相关文章推荐
- UINavigationController + UIScrollView组合,视图尺寸的设置探秘(二)
- UIScrollView代理方法执行顺序
- 使用 RequireJS 优化 Web 应用前端
- QuickXDev 配置
- String StringBuffer StringBuilder 类的区别 和 常用方法
- iOS-Core-Animation-Advanced-Techniques(一)
- [Leetcode] Minimum Window Substring My Submissions Question Solution
- UIImageView上添加Button不能响应点击事件
- iOS:UIView的CALayer基本演练
- API Guides > Loaders
- ural 1133 Fibonacci Sequence 二分枚举
- UIAlertController的用法示例
- iOS开发 指定UIView的某几个角为圆角
- easyui的textbox和validatebox的 赋值区别
- 搭建自家的wiki平台:win2008 破解安装confluence-5.1.4 和 汉化。 推荐
- easyui中 combogrid控件的loadData方法加载本地数据
- UIViewController不dealloc問題
- 内核中__builtin_constant_p 函数
- UIButton的使用
- easyui $.parser.parse 页面重新渲染