30

どちらを使うのが良いですか?私はCGRect.size.widthの方が見栄えが良いので好きです。しかし、私の同僚は、CGRectGetWidth の方が優れていると言っています。

4

2 に答える 2

21

CGRectGetWidth/Height は、幅または高さを正規化してから返します。正規化は基本的に、幅または高さが負かどうかをチェックし、負の場合は負にして正にします。

ここで回答済み

于 2011-05-11T21:28:33.697 に答える
12

rect の幅と高さは負の値になる場合があります。これが実際にいつ当てはまるかはわかりませんが、Apple docsによると:

CGGeometry Reference は、ジオメトリ プリミティブの構造とそれらを操作する関数を定義します。データ構造 CGPoint は、2 次元座標系の点を表します。データ構造 CGRect は、長方形の位置と寸法を表します。データ構造 CGSize は、幅と高さの寸法を表します。

CGRect データ構造に格納されている高さと幅は、負になる場合があります。たとえば、原点が [0.0, 0.0] でサイズが [10.0,10.0] の四角形は、原点が [10.0, 10.0] でサイズが [-10.0,-10.0] の四角形とまったく同じです。アプリケーションは、CGRectStandardize 関数を呼び出すことにより、四角形を標準化できます。つまり、高さと幅が正の値として格納されるようにします。CGRect データ構造を入力として受け取る、このリファレンスで説明されているすべての関数は、結果を計算する前にそれらの四角形を暗黙的に標準化します。このため、アプリケーションは、CGRect データ構造に格納されたデータを直接読み書きすることを避ける必要があります。代わりに、ここで説明する関数を使用して、四角形を操作し、その特性を取得します。

于 2014-05-27T22:14:05.217 に答える