Frame, Bounds,经常使用的字段,但是总会傻傻分不清。
先看一张图, 灰色视图,作为红色视图的父视图,红色视图出现在中间而不是灰色视图的左上角。
有两个方法使红色视图居中:
1. 设置红色视图的frame在制定位置。
2. 通过修改父视图的bounds.
第一种就不提了。
来说说第二种:
代码如下:
通过修改redView的bounds, 惊奇的发现绿色子视图起点不是左上角。
这是为什么呢?
Bounds影响的是子视图展示的位置!Bounds影响的是子视图展示的位置!Bounds影响的是子视图展示的位置!
重要的事情说3遍!!!
如果不修改bounds, 系统默认redView的bounds为(0,0), 而修改成(-20, -20)后,子视图相当于在redView的bounds(0,0)基础上向右,向下各偏移20.
同理,如果bounds(0,0)变成了(20,20),则会向左,向上各偏移20
网友评论