33

让我试着解释一下。如果我错了,请告诉我。我对此只有 70% 的把握。

就像我理解的那样, UIView 有一个框架和一个边界矩形。框架矩形的工作是设置 UIView 相对于它的 superview 的位置。更准确地说:相对于父视图的坐标系。边界矩形的工作是设置 UIView 的绘图区域,相对于它自己的坐标系。

简要地:

  • 框架矩形用于相对于其父视图定位 UIView
  • bounds rectangle 是设置UIView的绘图区域

我错过了什么错误或重要的事情吗?

4

5 回答 5

38

查看 Apple 的View Geometry指南。他们有很好的例子来说明当你改变边界和帧值时会发生什么。

于 2009-04-20T14:37:15.927 回答
9

视图的框架:视图将填充的父视图内矩形的位置和大小。

视图的边界:视图本身内部矩形的位置和大小。

于 2010-03-19T13:15:18.477 回答
4

是的你是对的。

当你需要使用视图时,就使用框架;边界用于实际实现视图。例如,您需要使用边界来绘制视图或处理触摸事件。相反,您在创建视图或在其父视图中定位视图等时使用框架。

于 2009-04-20T10:16:51.670 回答
4

你说的对。

您可以互换使用这两者,尽管只是在使用视图时框架更容易,而在视图内部工作时边界更容易(例如在事件处理或绘图代码中)

另请注意,如果在视图上进行了转换,则 frame 是未定义的。

于 2009-04-20T10:53:05.793 回答
1

http://developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/WindowsandViews/WindowsandViews.html

对于 iOS。原点坐标与 Mac OS 的位置不同(左上角,而不是左下角)

于 2012-09-03T11:44:53.017 回答