あるべき「CGRectMinYを」、言うiOSの機能は、Appleのドキュメントによると左下隅
CGRectMinY(CGRect)RECTは、yが指定した矩形の右上隅の座標を返し
それは四角形の左下隅でなければなりませんか?私はY軸が下向きだと思うから。
あるべき「CGRectMinYを」、言うiOSの機能は、Appleのドキュメントによると左下隅
CGRectMinY(CGRect)RECTは、yが指定した矩形の右上隅の座標を返し
それは四角形の左下隅でなければなりませんか?私はY軸が下向きだと思うから。
これがiOSの場合は、機能が間違っていると思います。
CGRectGetMinY
はy座標すなわち 矩形の下端を確立を返し。
CGFloat CGRectGetMinY(CGRect rect);
パラメータ
The rectangle to examine.
戻り値
指定された矩形の左下隅のy座標
RECT。 confussionをクリアするには : 可用性
Available in iOS 2.0 and later.
関連サンプルコード
はCGGeometry.hHeadsUpUI oalTouch PhotoScroller QuartzDemo SpeakHere
編集で宣言しました。 "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の記述は「人間の世界」のために作られています。逆システムではありません。
うわー、今私は混乱しています。質問者が文書を誤って引用したように見えますが、誤った引用が私には意味を成しました。あなたの見積もりは正確に見えますが、今私は質問者と同じ質問があります! CGRect座標系(view.boundsなど)が左上に原点を持つ場合、なぜminYが底を参照するのでしょうか?分は原点に近いですよね?原点は右上にありますか?分が上に近づくべきではないか? – danh
これは人にとって便利なメソッドなので、ios座標系が後方にある場合であっても、人間は通常、ポイントを地面に近づけたいと考えています。そして、あなたがトップ1を望むならば、frame/bounds.origin.y + frame/bounds.sizeをどこに置く必要があるのかというより低いものを得ることに反して、frame/bounds.origin.yをフレームするだけで済むという事実もあります。高さ – Pochi
@ LuisOscar:私は間違ったものを引用した。それは私の悪です。 yが下にある場合(左上の原点に相当)、 'CGRectGetMinY'は右上に、' CGRectGetMax'は左下にあります。 – tranvutuan
ビュー内の左上の点からY軸が下を指します。したがって、yの値が小さいほどビューの上部に近くなります。
y軸が下向きの場合、ビューの最上部に近いほうがビューの右上に相当するはずですか? – tranvutuan
私は、この混乱しやすいドキュメントにレーダーを提出しました。あなたがそれが修正されて見たい場合は、騙してください! http://openradar.appspot.com/radar?id=2876407 –
私はこのレッスンではこの機能を使用しないと思います。 –