2012-06-04 13 views
7

あるべき「CGRectMinYを」、言うiOSの機能は、Appleのドキュメントによると左下隅

CGRectMinY(CGRect)RECTは、yが指定した矩形の右上隅の座標を返し

それは四角形の左下隅でなければなりませんか?私はY軸が下向きだと思うから。

+0

私は、この混乱しやすいドキュメントにレーダーを提出しました。あなたがそれが修正されて見たい場合は、騙してください! http://openradar.appspot.com/radar?id=2876407 –

+1

私はこのレッスンではこの機能を使用しないと思います。 –

答えて

14

これがiOSの場合は、機能が間違っていると思います。

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

CGRectGetMinY

はy座標すなわち 矩形の下端を確立を返し。

CGFloat CGRectGetMinY(CGRect rect);

パラメータ

The rectangle to examine. 

戻り値

指定された矩形の左下隅のy座標

RECT。 confussionをクリアするには : 可用性

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の記述は「人間の世界」のために作られています。逆システムではありません。

+1

うわー、今私は混乱しています。質問者が文書を誤って引用したように見えますが、誤った引用が私には意味を成しました。あなたの見積もりは正確に見えますが、今私は質問者と同じ質問があります! CGRect座標系(view.boundsなど)が左上に原点を持つ場合、なぜminYが底を参照するのでしょうか?分は原点に近いですよね?原点は右上にありますか?分が上に近づくべきではないか? – danh

+2

これは人にとって便利なメソッドなので、ios座標系が後方にある場合であっても、人間は通常、ポイントを地面に近づけたいと考えています。そして、あなたがトップ1を望むならば、frame/bounds.origin.y + frame/bounds.sizeをどこに置く必要があるのか​​というより低いものを得ることに反して、frame/bounds.origin.yをフレームするだけで済むという事実もあります。高さ – Pochi

+0

@ LuisOscar:私は間違ったものを引用した。それは私の悪です。 yが下にある場合(左上の原点に相当)、 'CGRectGetMinY'は右上に、' CGRectGetMax'は左下にあります。 – tranvutuan

0

ビュー内の左上の点からY軸が下を指します。したがって、yの値が小さいほどビューの上部に近くなります。

+0

y軸が下向きの場合、ビューの最上部に近いほうがビューの右上に相当するはずですか? – tranvutuan

関連する問題