我知道框架是一个相对于它的父视图的框架,边界是视图的内部边界(除了滚动视图的情况外,原点总是[0,0]?)。
但是,我不清楚在什么条件下框架和边界尺寸可能会有所不同,如果有的话。是否有正式的Apple文档说明frame.size = bounds.size
或frame.size ?= bounds.size
?
答案 0 :(得分:1)
你可以用界限做任何你想做的事。想象一下,您的视图是一幅画,您只能通过相机查看。移动原点将通过移动相机来改变当前可以看到的绘画部分。缩小尺寸会缩小,以减少可见的绘画,但看起来更大。扩大尺寸会缩小,以便可以看到更多的绘画,但它看起来更小。
默认情况下,返回矩形的原点是(0,0),其大小与接收器框架矩形的大小(以点为单位)相匹配....
如果明确更改边界矩形的原点或大小,则此方法不会返回默认矩形,而是返回您设置的矩形。但是,如果向视图添加旋转因子,则该因子也会反映在返回的边界矩形中。
来自documentation for setBounds:
:
bounds矩形确定接收器坐标系在其框架矩形内的原点和比例....
调用此方法后,NSView会创建一个内部变换(或将这些更改附加到现有的内部变换),以便从视图中的帧坐标转换为边界坐标。只要两个坐标系的宽高比保持不变,您的内容就会显示正常。如果比率不同,您的内容可能会出现偏差。