2014-09-02 51 views
2

CGRectEdge在CGGeometry.h定义像这样:CGRectEdge如何用于建立矩形的边缘?

enum CGRectEdge { 
    CGRectMinXEdge, CGRectMinYEdge, CGRectMaxXEdge, CGRectMaxYEdge 
}; 
typedef enum CGRectEdge CGRectEdge; 

和文档(在CGGeometry参考)表示,CGRectEdge是“即建立一个矩形的边缘坐标”。那么设置这些值是什么?或者如何设定这些值?各个值是只读的。这听起来很有用,但我不明白如何使用它来做任何事情,因为我看不到如何设置它。也不知道如何将其与特定的矩形关联。

回答

2

的CGRectEdge枚举用于提供信息给划分成矩形子矩形呼叫,这两个调用在< CoreGraphics中/ CGGeometry.h >和MKMapRectDivide在<MapKit/MKGeometry.h>是CGRectDivide。

/* Make two new rectangles, `slice' and `remainder', by dividing `rect' with 
a line that's parallel to one of its sides, specified by `edge' -- either 
`CGRectMinXEdge', `CGRectMinYEdge', `CGRectMaxXEdge', or 
`CGRectMaxYEdge'. The size of `slice' is determined by `amount', which 
measures the distance from the specified edge. */ 

void CGRectDivide(CGRect rect, CGRect *slice, CGRect *remainder, 
    CGFloat amount, CGRectEdge edge); 

void MKMapRectDivide(MKMapRect rect, MKMapRect *slice, MKMapRect *remainder, double amount, CGRectEdge edge) NS_AVAILABLE(10_9, 4_0); 
+2

绿色检查,因为这是更好的2类似的答案,只是因为它有更多的信息。但这两个答案都错过了让我困惑的东西。从文档中,我认为CGRectEdge以某种方式指定了矩形的坐标。我现在明白它的价值只是指定矩形的四个边中的一个。它是用于指定四个边中的一个的数字代码。它不给任何事情的坐标。文件中的措辞似乎是错误的。它不应该说“建立矩形边的坐标”,因为它不包含坐标。 – RobertL 2014-09-02 17:50:15

2

这主要用于我所知道的CGRectDivide

您会通过一个类型的CGRectEdge到参数edge

的边缘值,指定从 ,其在量参数中传递的距离被测量的矩形的一侧。 CGRectDivide生成一个“切片”矩形,其中包含指定的边缘,并将距离延伸至其之外。