Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在iOS上,可以更改UIView对象';s框架和中心改变其内部坐标系?_Iphone_Ios_Uiview_Frame_Bounds - Fatal编程技术网

Iphone 在iOS上,可以更改UIView对象';s框架和中心改变其内部坐标系?

Iphone 在iOS上,可以更改UIView对象';s框架和中心改变其内部坐标系?,iphone,ios,uiview,frame,bounds,Iphone,Ios,Uiview,Frame,Bounds,在iOS上,如果我们更改视图的帧,我们将更改其边界,如果我们更改其边界,我们将更改其帧 但我们可以通过以下方式更改视图的内部坐标系: CGRect b = v.bounds; // v is the UIView object b.origin.x = 10000; b.origin.y = 10000; v.bounds = b; 现在,视图的左上角是(10000,10000)的坐标。仅通过更改帧和中心而不更改边界也可以实现这一点吗 在iOS上,如果更改视图的帧,则更改其边界;如果更改

在iOS上,如果我们更改视图的
,我们将更改其
边界
,如果我们更改其
边界
,我们将更改其

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

CGRect b = v.bounds;    // v is the UIView object
b.origin.x = 10000;
b.origin.y = 10000;
v.bounds = b;
现在,视图的左上角是
(10000,10000)
的坐标。仅通过更改
中心
而不更改
边界
也可以实现这一点吗

在iOS上,如果更改视图的帧,则更改其边界;如果更改其边界,则更改其帧

有一半是真的。只有这两个矩形的大小绑定在一起。从文档中:

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


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

明确重申,它们是有界的,而不是相等的。旋转将引起有趣的问题。见: