做淘宝客网站要多少钱,建设金融行业网站,手机导入wordpress主题,天津低价网站建设frame frame是每个view必备的属性#xff0c;代表的是当前视图的位置和大小#xff0c;没有设置他#xff0c;当前视图是看不到的。位置需要有参照物才能确定#xff0c;数学中我们用坐标系来确定坐标系中的某个点的位置#xff0c;iOS中有他特有的坐标系#xff0c;如下… frame frame是每个view必备的属性代表的是当前视图的位置和大小没有设置他当前视图是看不到的。位置需要有参照物才能确定数学中我们用坐标系来确定坐标系中的某个点的位置iOS中有他特有的坐标系如下图 iOS坐标系 • 在iOS坐标系中以左上角为坐标原点往右为X正方向往下是Y正方向 • frame中的位置是以父视图的坐标系为标准来确定当前视图的位置 • 同样的默认情况下本视图的左上角就是子视图的坐标原点 • 更改frame中位置则当前视图的位置会发生改变 • 更改frame的大小则当前视图以当前视图的左上角为基准的进行大小的修改 bounds bounds是每个View都有的属性这个属性我们一般不进行设置他同样代表位置和大小每个视图都有自己的坐标系且这个坐标系默认以自身的左上角为坐标原点所有子视图以这个坐标系的原点为基准点。bounds的位置代表的是子视图看待当前视图左上角的位置;bounds的大小代表当前视图的大小 • 更改bounds中的位置对于当前视图没有影响相当于更改了当前视图的坐标系对于子视图来说当前视图的左上角已经不再是(0,0), 而是改变后的坐标坐标系改了那么所有子视图的位置也会跟着改变 • 更改bounds的大小bounds的大小代表当前视图的长和宽修改长宽后中心点继续保持不变, 长宽进行改变通过bounds修改长宽看起来就像是以中心点为基准点对长宽两边同时进行缩放 frame和bounds 有如下图 iOS bounds View A是最顶层视图 因此他的信息如下frame origin:0, 0 size :550 * 400 bounds origin:0, 0 size 550 * 400 因为是View A是顶层视图所以其实相当于覆盖在框架上因此位置从父视图的0 0开始大小为550*400默认情况下本视图的坐标系是没有发生改变的即当前视图(view A)的左上角就是所有子视图的原点大小就是当前视图的大小. View B是View A的子视图因此他的信息如下: frame origin:200, 100 size :200 * 250 bounds origin:0, 0 size :200 * 250 因为View B是View A的子视图所以View B的frame位置需要以View A的左上角为参照因此位置为(200, 100), 大小为200*250bounds在默认情况下本视图的坐标系是没有发生改变的即当前视图(view B)的左上角就是当前视图所有子视图的原点. 上面这种是普通的情况也就是没有更改bounds的时候下面我们来看更改bounds的例子 如下图 iOS bounds 在上一个例子的基础上我们更改了view A的bounds后view B看待View A的左上角就已经发生改变了这个时候我们看待View A的左上角就不是坐标原点了而是我们通过bounds设置后的坐标如图也就是(0, 100);在View B的frame没有保存不变的基础上我们View B的位置向上移动了100 在第一例的基础上更改了bounds中X后效果图如下 iOS bounds 3 总结 1、frame不管对于位置还是大小改变的都是自己本身 2、frame的位置是以父视图的坐标系为参照从而确定当前视图在父视图中的位置 3、frame的大小改变时当前视图的左上角位置不会发生改变只是大小发生改变 1、bounds改变位置时改变的是子视图的位置自身没有影响其实就是改变了本身的坐标系原点默认本身坐标系的原点是左上角 2、bounds的大小改变时当前视图的中心点不会发生改变当前视图的大小发生改变看起来效果就像缩放一样。 转自http://www.lanou3g.com/lozx/2582.html