4

私は通常、すべてのコードでCGRectMakeメソッドを使用します。他の便利なメソッドはありますか?

4

1 に答える 1

4

便利な Core Graphics 関数

NSLog(@"%@", CGRectCreateDictionaryRepresentation(rect));: NSLog での CGRect の出力

bool CGRectContainsPoint ( CGRect rect, CGPoint point );: この関数を使用して、タッチ イベントが設定された画面上の領域内にあるかどうかを判断できます。これは、個別の UIView に基づいていない幾何学的要素を使用している場合に非常に便利です。

bool CGRectContainsRect ( CGRect rect1, CGRect rect2 );: 関数は 2 つの引数を取ります。最初の四角形は常に周囲のアイテムです。2 番目の引数は、最初の引数の中に完全に収まるか、収まらないかのいずれかです。

bool CGRectIntersectsRect ( CGRect rect1, CGRect rect2 );: 2 つの UIView がオーバーラップしているかどうかを確認したい場合は、代わりに CGRectIntersects を使用してください。これは、任意の順序で 2 つの四角形を取り、これら 2 つの四角形に交点があるかどうかを確認します。

CGRect CGRectIntersection ( CGRect r1, CGRect r2 );:これも 2 つの引数 (どちらも CGRect) を任意の順序で取ります。これは、2 つの CGRect の実際の共通部分である CGRect 構造体を返します。ご想像のとおり、反対の関数を返す CGRectUnion があります。CGRectIntersection は、交差をテストするだけでなく、2 つのビューの間にある実際の四角形を使用する場合にも便利です。

CGRect testRect = CGRectIntersection(rect1, rect2);if (CGRectIsNull(testRect)) ...some result...

CGRect CGRectOffset ( CGRect rect, CGFloat dx, CGFloat dy );: 画面上でビューを移動したい場合は、CGRectOffset 関数が便利です。(dx, dy) だけオフセットされた四角形を返し、ある点から新しい点への単純な変換を提供します。新しい中心またはフレームの計算を開始する必要はありません。フレームを新しいオフセットに更新するだけで済みます。

CGRect CGRectInset ( CGRect rect, CGFloat dx, CGFloat dy );: CGRectInset は、おそらく Core Graphics rect ユーティリティの中で私のお気に入りです。プログラムで四角形を拡大または縮小できます。それにオフセット ペアを渡し、それに応じて関数に四角形を調整させます。この関数は幅を dx で挿入し、dx の 2 倍の差を生成します。これは、挿入が左右の両方に適用されるためです。高さは dy で挿入され、合計で dy の 2 倍の差になります。

気に入っていただければ幸いです。

リファレンス: what-the-most-useful-core-graphics-cgrect-functions

于 2012-11-29T07:18:37.080 に答える