框架的大小是否可以与UIView的边界大小不同。
每当我设置其中任何一个时,我都注意到两者都发生了变化,并且它们始终保持同步。是否有一个边缘情况,这是不正确的?
答案 0 :(得分:4)
是;例如,变换后的(例如旋转的)视图具有不同的(和无用的)帧大小。
框架纯粹是一种便利,如果你不得不,你可以完全没有它。边界大小和中心,一起,准确并始终描述视图的位置和大小。
答案 1 :(得分:2)
是的,请参考以下框架和边界之间的简单区别: -
视图的框架是矩形,表示为位置(x,y) 和相对于它所包含的超视图的大小(宽度,高度) 内。
视图的边界是矩形,表示为位置(x,y) 和相对于其自身坐标系的大小(宽度,高度)。
答案 2 :(得分:0)
bounds
"描述视图在其自己的坐标系中的位置和大小"。
frame
"在其超视图的坐标系中定义视图的原点和尺寸"。
因此,对于使用与其父坐标系不同的坐标系的任何视图,两者应该不同。关键的赠品是:
但是,如果transform属性包含非标识变换, frame属性的值是未定义的,不应该是 改性。在这种情况下,您可以使用中心重新定位视图 属性并使用bounds属性调整大小。
这就是Apple给你的一个例子,当frame
被定义为与bounds
没有可预测的关系时:只要你设置了非身份转换。< / p>
(所有报价的来源为the UIView documentation)