Objective c UIView&x27;s边界大小与帧大小

Objective c UIView&x27;s边界大小与帧大小,objective-c,cocoa-touch,uiview,Objective C,Cocoa Touch,Uiview,框架的大小可以不同于UIView的绑定大小 无论何时我设置它们中的任何一个,我都会注意到它们都在变化,并且它们总是同步的。是否存在不符合此条件的边缘情况?是;例如,变换(例如旋转)视图具有不同(且无用)的帧大小 框架纯粹是一种方便,如果必须的话,你可以完全没有它而生活;边界大小和中心一起准确且始终描述视图的位置和大小。边界“描述视图在其自身坐标系中的位置和大小” frame“定义视图在其superview坐标系中的原点和尺寸” 因此,对于使用不同于其父视图的坐标系的任何视图,这两者都应该有所不同

框架的大小可以不同于UIView的绑定大小


无论何时我设置它们中的任何一个,我都会注意到它们都在变化,并且它们总是同步的。是否存在不符合此条件的边缘情况?

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

框架纯粹是一种方便,如果必须的话,你可以完全没有它而生活;边界大小和中心一起准确且始终描述视图的位置和大小。

边界
“描述视图在其自身坐标系中的位置和大小”

frame
“定义视图在其superview坐标系中的原点和尺寸”

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

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

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


(所有引号的来源是)

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

视图的框架是矩形,表示为位置(x,y) 以及相对于所包含的superview的大小(宽度、高度) 在里面

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


你可能想读我关于这个主题的书,从这里开始:我不会说转换的框架是无用的。如果您想知道旋转视图所占据的区域,以便superview可以在此基础上进行布局,那么框架就是您想要的。边界并不总是以(0,0)为原点。