在iOS上,可以更改UIView对象的框架和中心来改变其内部坐标系吗?

时间:2012-05-23 21:51:40

标签: iphone ios uiview frame bounds

在iOS上,如果我们更改了视图frame,我们会更改其bounds,如果我们更改其bounds,我们会更改其frame

但我们可以通过以下方式更改视图的内部坐标系:

CGRect b = v.bounds;    // v is the UIView object
b.origin.x = 10000;
b.origin.y = 10000;
v.bounds = b;

现在,视图的左上角是(10000, 10000)的坐标。仅通过更改framecenter而不是bounds来实现这一点吗?

1 个答案:

答案 0 :(得分:3)

  

在iOS上,如果我们更改视图的框架,我们会更改其边界,如果我们更改其边界,我们会更改其边框。

这是正确的一半。只有这两个rects的 sizes 绑定在一起。来自文档:

  

框架和边界矩形的大小部分耦合在一起,因此更改任一矩形的大小会更新两者的大小。

没有提到起源。因此,您的示例将修改内部坐标系的原点而不更改其在superview坐标系中的位置。您无法通过framecenter属性实现此行为;它们只会影响视图在超视图坐标系中的位置。