让我试着解释一下。如果我错了,请告诉我。我对此只有 70% 的把握。
就像我理解的那样, UIView 有一个框架和一个边界矩形。框架矩形的工作是设置 UIView 相对于它的 superview 的位置。更准确地说:相对于父视图的坐标系。边界矩形的工作是设置 UIView 的绘图区域,相对于它自己的坐标系。
简要地:
- 框架矩形用于相对于其父视图定位 UIView
- bounds rectangle 是设置UIView的绘图区域
我错过了什么错误或重要的事情吗?
查看 Apple 的View Geometry指南。他们有很好的例子来说明当你改变边界和帧值时会发生什么。
视图的框架:视图将填充的父视图内矩形的位置和大小。
视图的边界:视图本身内部矩形的位置和大小。
是的你是对的。
当你需要使用视图时,就使用框架;边界用于实际实现视图。例如,您需要使用边界来绘制视图或处理触摸事件。相反,您在创建视图或在其父视图中定位视图等时使用框架。
你说的对。
您可以互换使用这两者,尽管只是在使用视图时框架更容易,而在视图内部工作时边界更容易(例如在事件处理或绘图代码中)
另请注意,如果在视图上进行了转换,则 frame 是未定义的。
对于 iOS。原点坐标与 Mac OS 的位置不同(左上角,而不是左下角)