我对Objective-J和框架还比较陌生,所以我试图深入了解并理解一些代码,但是我对Object(或Struct)CGRect迷路了。
以下是完整的文档:
Cappuccino
好了,现在我要深入学习cpview类的工作原理:
CPView.j
现在,我在任何地方都能看到CGRECT对象(或结构),而我一辈子都无法确定CGRECT的定义。这是怎么工作的?我觉得我错过了什么。
我找到的最接近的东西是
CGGeometry.j
和
CGGeometry.h
,但仍然没有定义CGRECT结构或对象。
有人能帮我吗?如何能够实例化CGRECT结构或对象,以及在何处定义它?它包含什么?等…
我知道创建CGRECT的主要方法是使用如前所述的CGRECTMAKE函数
here
.
我只是觉得我不明白这是怎么回事。
谢谢您。
更新:
在看了更多代码之后:第23行、第30行和第37行,看起来有点像JavaScript对象描述。这是正确的吗?我不确定…翻译这些.j文件的内容是否知道cgrect已经是什么?这就是我们可以使用(cgrect)类型的类型转换和对象的原因吗?cDirect似乎是
不一样
就像我看到的其他物体一样,我想知道原因。
再次谢谢。
00023 #define _CGPointMake(x_, y_) { x:x_, y:y_ }
00024 #define _CGPointMakeCopy(aPoint) _CGPointMake(aPoint.x, aPoint.y)
00025 #define _CGPointMakeZero() _CGPointMake(0.0, 0.0)
00026
00027 #define _CGPointEqualToPoint(lhsPoint, rhsPoint) (lhsPoint.x == rhsPoint.x && lhsPoint.y == rhsPoint.y)
00028 #define _CGStringFromPoint(aPoint) ("{" + aPoint.x + ", " + aPoint.y + "}")
00029
00030 #define _CGSizeMake(width_, height_) { width:width_, height:height_ }
00031 #define _CGSizeMakeCopy(aSize) _CGSizeMake(aSize.width, aSize.height)
00032 #define _CGSizeMakeZero() _CGSizeMake(0.0, 0.0)
00033
00034 #define _CGSizeEqualToSize(lhsSize, rhsSize) (lhsSize.width == rhsSize.width && lhsSize.height == rhsSize.height)
00035 #define _CGStringFromSize(aSize) ("{" + aSize.width + ", " + aSize.height + "}")
00036
00037 #define _CGRectMake(x, y, width, height) { origin: _CGPointMake(x, y), size: _CGSizeMake(width, height) }