CGRect
和NSRect
之间有什么区别吗?特别是,我想知道原点的位置。我需要了解哪些重要差异?
答案 0 :(得分:19)
他们是一样的。 This link有更多信息。复制到此处以供快速参考:
CGRect
是与NSRect
等效的CoreGraphics。故意使它们在内存中具有相同的布局。因此,可以通过以下方式将
NSRect
转换为CGRect
:CGRect cgrect = *(CGRect *)&nsrect;
CoreGraphics还提供
CGRectMake()
函数,其作用与NSMakeRect()
相同(注意名称中动词和对象的反转),但它返回CGRect
。
答案 1 :(得分:4)
特别是,我想知道原点的位置。
这取决于你得到矩形的位置以及你在哪里使用它。一般来说,Core Graphics和UIKit使用翻转坐标(原点左上角,正y下降),而AppKit使用未折叠的坐标(原点左下,正y上升)。但是可以从每个API中翻转或解开坐标,而某些类(如NSImage和NSView)可以很容易地实现这一点。