设置视图的边界会改变框架的坐标,为啥?

Posted

技术标签:

【中文标题】设置视图的边界会改变框架的坐标,为啥?【英文标题】:Setting a view's bounds changes the coordinates of the frame, WHY?设置视图的边界会改变框架的坐标,为什么? 【发布时间】:2012-01-30 21:41:25 【问题描述】:

为什么设置 UIView 的 bounds 属性会弄乱它的框架坐标? 例如:

self.view.frame = CGRectMake(10, 10, 200, 200);

CGRect b = CGRectMake(0, 0, 399, 323);

self.view.bounds = b;

我希望视图的框架为 (10, 10, 399, 323),但坐标会得到一些奇怪的值,例如 (-89.5 -51.5; 399 323)。

谢谢!

【问题讨论】:

【参考方案1】:

来自 UIView 类参考:

更改边界大小会相对于其中心点增大或缩小视图。

所以它保持中心点在同一个地方,这意味着框架的原点必须调整。

如果您想调整视图大小但将原点保持在同一位置,请设置框架而不是边界。

【讨论】:

谢谢!!我知道我忽略了一些东西。

以上是关于设置视图的边界会改变框架的坐标,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何将由 NE 和 SW 坐标组成的特定边界拟合到可见地图视图中?

怎么改变R中柱状图的坐标数值大小

如何在其父视图坐标系中获得子视图的有效边界

为啥使用两种类型(边界/框架)来描述视图而不是一种?

rstudio中的ggplot2中怎么去掉坐标轴的右半部分

你好,我想问为啥在Arcgis中将两个文件的投影坐标系统设置相同时,其中一个的位置会跑偏