在iOS上,如果我们改变一个 View 的frame
,我们改变它的bounds
,如果我们改变它的bounds
,我们改变它的框架
。
但是我们可以通过以下方式改变 View 的内部坐标系:
CGRect b = v.bounds; // v is the UIView object
b.origin.x = 10000;
b.origin.y = 10000;
v.bounds = b;
现在, View 的左上角是 (10000, 10000)
的坐标。这是否也可以通过仅更改 frame
和 center
而不是 bounds
来实现?
On iOS, if we change a view's frame, we change its bounds, and if we change its bounds, we change its frame.
说对了一半。只有这两个矩形的 sizes 绑定(bind)在一起。来自文档:
The size portion of the frame and bounds rectangles are coupled together so that changing the size of either rectangle updates the size of both.
这并没有提到起源。因此,您的示例将修改内部坐标系的原点,而不会更改其在 super View 坐标系中的位置。您无法通过 frame
或 center
属性实现该行为;它们只影响 View 在其父 View 坐标系中的位置。
关于iphone - 在 iOS 上,改变 UIView 对象的框架和中心可以改变其内部坐标系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10728408/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |