UIView的边界大小与帧大小

时间:2014-12-07 02:10:38

标签: objective-c cocoa-touch uiview

框架的大小是否可以与UIView的边界大小不同。

每当我设置其中任何一个时,我都注意到两者都发生了变化,并且它们始终保持同步。是否有一个边缘情况,这是不正确的?

3 个答案:

答案 0 :(得分:4)

是;例如,变换后的(例如旋转的)视图具有不同的(和无用的)帧大小。

框架纯粹是一种便利,如果你不得不,你可以完全没有它。边界大小和中心,一起,准确并始终描述视图的位置和大小。

答案 1 :(得分:2)

是的,请参考以下框架和边界之间的简单区别: -

  

视图的框架是矩形,表示为位置(x,y)   和相对于它所包含的超视图的大小(宽度,高度)   内。

  

视图的边界是矩形,表示为位置(x,y)   和相对于其自身坐标系的大小(宽度,高度)。

答案 2 :(得分:0)

bounds"描述视图在其自己的坐标系中的位置和大小"。

frame"在其超视图的坐标系中定义视图的原点和尺寸"。

因此,对于使用与其父坐标系不同的坐标系的任何视图,两者应该不同。关键的赠品是:

  

但是,如果transform属性包含非标识变换,   frame属性的值是未定义的,不应该是   改性。在这种情况下,您可以使用中心重新定位视图   属性并使用bounds属性调整大小。

这就是Apple给你的一个例子,当frame被定义为与bounds没有可预测的关系时:只要你设置了非身份转换。< / p>

(所有报价的来源为the UIView documentation

相关问题