4

私はそれを発見しました

UIView の境界は、独自の座標系 (0, 0) に対する位置 (x、y) とサイズ (幅、高さ) として表される四角形です。

UIView のフレームは長方形で、含まれるスーパービューに対する位置 (x、y) とサイズ (幅、高さ) で表されます。

しかし、私の疑問は、どのシナリオで使用する境界があるかということです。フレームを使用できません

すべての場合?バウンドを使用する必要はありますか?

4

1 に答える 1

11

ビュープログラミングガイドから:

  • frameプロパティには、スーパービューの座標系でのビューのサイズと位置を指定するフレーム四角形が含まれています。
  • boundsプロパティには、ビュー自体のローカル座標系でビュー (およびそのコンテンツの原点) のサイズを指定する境界四角形が含まれています。

フレーム:

center プロパティと frame プロパティは、主に現在のビューのジオメトリを操作するために使用します。たとえば、ビュー階層を構築したり、実行時にビューの位置やサイズを変更したりするときに、これらのプロパティを使用します。ビューの位置のみを変更する (サイズを変更しない) 場合は、center プロパティを使用することをお勧めします。ビューの変換にスケーリングまたは回転係数が追加されている場合でも、center プロパティの値は常に有効です。ビューの変換が恒等変換と等しくない場合、フレーム プロパティの値は無効と見なされます。

境界:

境界プロパティは、主に描画中に使用します。境界の四角形は、ビュー独自のローカル座標系で表されます。この四角形のデフォルトの原点は (0, 0) で、そのサイズはフレーム四角形のサイズと一致します。この四角形の内側に描画するものはすべて、ビューの可視コンテンツの一部です。境界の四角形の原点を変更すると、新しい四角形の内側に描画したものはすべて、ビューの可視コンテンツの一部になります。

したがって、フレームで次のことを行います。

  • ビューのサイズ変更
  • ビューの移動/再配置

boundsを使用する必要がある状況:

  • drawRect:のメソッドなどで、境界のあるビュー内で描画する場合UIView
  • サブビューを親ビューの境界に追加する
于 2012-10-25T13:22:18.520 に答える