9

根据 Apple 文档,

CGRectMinY(CGRect) rect 返回指定矩形右上角的y坐标

它不应该是矩形的左下角吗?因为我认为Y轴是向下的。

4

2 回答 2

16

如果这适用于 iOS,我认为您的功能是错误的。

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html

CGRectGetMinY

返回建立矩形底部边缘的 y 坐标。

CGFloat CGRectGetMinY ( CGRect 矩形 );

参数

矩形

The rectangle to examine. 

返回值

指定矩形左下角的 y 坐标。可用性

Available in iOS 2.0 and later.

相关示例代码

HeadsUpUI
oalTouch
PhotoScroller
QuartzDemo
SpeakHere

在 CGGeometry.h 中声明

编辑:清除混乱。"CGRectGetMinY" 是一个用于 CGRect 的函数,这意味着它将返回结果,就好像它只考虑一个矩形一样。例如:

// With a self created element

CGRect rect = CGRectMake(0, 429, 100, 44);

NSLog(@"rect.origin.y: %f",rect.origin.y);
NSLog(@"rect.size.height: %f",rect.size.height);
NSLog(@"CGRectGetMinY(rect): %f",CGRectGetMinY(rect));
NSLog(@"CGRectGetMaxY(rect): %f",CGRectGetMaxY(rect));

返回

2012-06-04 10:55:49.737 test[7613:707] rect.origin.y: 429.000000
2012-06-04 10:55:49.739 test[7613:707] rect.size.height: 44.000000
2012-06-04 10:55:49.741 test[7613:707] CGRectGetMinY(rect): 429.000000
2012-06-04 10:55:49.748 test[7613:707] CGRectGetMaxY(rect): 473.000000

关键是要考虑这一点,如果你要求最小值,你会得到比你要求最大值更低的值。即使您在不使用 ios 坐标系的情况下考虑这一点。

现在ios是倒置的,所以你要考虑这一点,以前的功能也可以,但是从视觉上讲结果是倒置的,因为系统是倒置的。

// With an element on the screen

NSLog(@"gpsButton.frame.origin.y: %f",gpsButton.frame.origin.y);
NSLog(@"gpsButton.frame.size.height: %f",gpsButton.frame.size.height);
NSLog(@"CGRectGetMinY(gpsButton.frame): %f",CGRectGetMinY(gpsButton.frame));
NSLog(@"CGRectGetMaxY(gpsButton.frame): %f",CGRectGetMaxY(gpsButton.frame));

返回

2012-06-04 10:55:49.725 test[7613:707] gpsButton.frame.origin.y: 429.000000
2012-06-04 10:55:49.727 test[7613:707] gpsButton.frame.size.height: 44.000000
2012-06-04 10:55:49.732 test[7613:707] CGRectGetMinY(gpsButton.frame): 429.000000
2012-06-04 10:55:49.735 test[7613:707] CGRectGetMaxY(gpsButton.frame): 473.000000

对于看到这一点的人来说,也没有错,min小于max。

所以混乱出现在 ios 倒置系统中,因为您想从倒置系统中检索视觉上较少的值。

这就是为什么看起来很奇怪,CGGeometry 中的描述是针对“人类世界”的。不适用于 ios 倒置系统。

于 2012-06-04T01:09:01.273 回答
0

Y 轴确实指向下方,从视图的左上角开始。所以较小的 y 值更接近视图的顶部。

于 2012-06-04T01:03:28.123 回答