2

是否可以让 UIView 的边界大小与其帧大小不同?

我正在尝试使用“{{0,0},{320,367}}”框架和“{{0,15},{320,337}}”边界创建一个 UIView,但我无法使用 setBounds()和 setFrame()。

我从文档中得知更改边界或框架会相应地更改框架或边界,但我认为可以为这些论文设置不同的值。

非常感谢。

4

2 回答 2

5

是的,当设备旋转时,您的整个视图层次结构会使用 CGAffineTransform 进行转换。在这种情况下,您的边界和框架可能具有不同的值。确保视图位置的最佳方法是将其 bounds 属性设置为大小,将其 center 属性设置为位置。

于 2010-01-04T17:45:43.367 回答
2

通常:
1. 边界在 (0,0),而框架(和中心)给出视图的位置。
2. 边界和框架将具有相同的宽度和高度。

更新
听起来您想在以前较大的特定视图下方添加一个按钮。
在这种情况下,我将创建一个占据整个空间的新视图。然后,我将在所需位置添加现在较小的特定视图作为子视图。最后,我会将所需位置的新按钮作为另一个子视图添加到新的完整空间视图中。
您可以在 Interface Builder 或代码中进行此布局。

于 2010-01-04T17:35:12.297 回答