UIView:frame大小与bounds大小不同?

3

是否可以创建一个bounds尺寸与frame尺寸不同的UIView?

我试图创建一个frame为"{{0,0},{320,367}}",bounds为"{{0,15},{320,337}}"的UIView,但是使用setBounds()和setFrame()无法实现。

从文档中得知,更改bounds或frame会相应地更改frame或bounds,但我认为这些值不同也没问题。

非常感谢。

2个回答

6

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


2

通常情况下:
1. bounds在(0,0)处,而frame(和中心)给出视图的位置。
2. bounds和frame具有相同的宽度和高度。

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


我正在尝试调整视图大小,以便在其下方留出空白空间。由于我想在这个空白空间中添加一个按钮,因此我希望通过修改边界来调整视图大小,但保持原始框架大小,以便我的按钮可触摸。 - Vivi
谢谢您的建议,但我想我可能会遇到问题,因为我的视图和控制器有代理和其他东西。但我会尝试一下 :) - Vivi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接