[mainView addSubview:yellowView];
bounds
Apple关于UIView的文档中是这样描述bounds属性的:
bounds矩形…描述了该视图在其自身坐标系中的位置和大小。
一个View可以被看作是定义在其所在坐标系平面上的一扇窗户或者说是一个矩形的可视区域。View的边界表明了这个矩形可视区域的位置和大小。
假设我们的View宽320像素,高480像素,原点在(0,0)。那么这个View就变成了整个坐标系平面的观察口,它展示的只是整个平面的一小部分。位于该View边界外的区域依然存在,只是被隐藏起来了。
一个View提供了其所在平面的一个观察口。View的bounds矩形描述了这个可是区域的位置和大小。
Frame
接下来我们来试着修改bounds的原点坐标:
复制代码
CGRect bounds = mainView.bounds;
bounds.origin = CGPointMake(0, 100);
mainView.bounds = bounds;
当我们把bound原点设为(0,100)后,整个画面看起来就像这样:
修改bounds的原点就相当与在平面上移动这个可视区域。
看起来好像是这个View向下移动了100像素,在这个View自己的坐标系中这确实没错。不过这个View真正位于屏幕上的位置(更准确的说在其父View上的位置)其实没有改变,因为这是由View的frame属性决定的,它并没有改变:
frame矩形…定义了这个View在其父View坐标系中的位置和大小。
由于View的位置是相对固定的,你可以把整个坐标平面想象成我们可以上下拖动的透明幕布,把这个View想象成我们观察坐标平面的窗口。调整View的Bounds属性就相当于拖动这个幕布,那么下方的内容就能在我们View中被观察到:












