[解決済み] UIViewのフレーム、バウンズ、センター、オリジン、いつ何を使うか?
質問
UIView
はプロパティを持ちます。
frame
,
bounds
,
center
および
origin
そして、それらはすべて相互に関連しているようです。 たいていの場合、私が扱うのは
frame
の位置や大きさを設定するときに使います。
UIView
. と理解しています。
frame
はグローバル座標系を使用しており
bounds
はローカルビューの座標を使用しています(したがって、そのxとyは0ですが、常にではありません)、しかし、いつ何を使用するかはまだ混乱しています。
どのような状況で(どのようなタイミングで)、他のプロパティ(
bounds
,
center
,
origin
を使うべきでしょうか?
どのように解決するのですか?
上記のMarcoさんの回答は正しいのですが、「どのような状況で」「どのように」「どのように」という質問を拡大解釈すると...。
フレーム - ほとんどのコントロールは、"containing"コントロールに対して相対的にレイアウトされるので、frame.originはコントロールの表示位置に直接対応し、frame.sizeはコントロールをどの程度の大きさにするか決定します。
センター - このプロパティは、スプライトベースのゲームやアニメーションで、移動や拡大縮小が発生する場合に注目されるでしょう。 デフォルトでは、アニメーションと回転はUIViewの中心を基準としています。 このようなオブジェクトを frame プロパティで管理することは、ほとんど意味がありません。
境界
- このプロパティは位置決めプロパティではなく、UIView の描画可能な領域をフレームに対して "相対的" に定義するものです。 デフォルトでは、このプロパティは通常、(0、0,
幅
,
高さ
). このプロパティを変更することで、フレームの外側に描画したり、フレーム内の狭い範囲に描画を制限することができるようになります。 これについては、以下のリンクに良い議論があります。 このプロパティは、描画領域を調整する特別な必要がない限り、操作されることはまずありません。 唯一の例外は、ほとんどのプログラムで
[[UIScreen mainScreen] bounds]
起動時にアプリケーションの可視領域を決定し、それに応じて最初のUIViewのフレームを設定します。
なぜUIViewにはフレーム矩形とバウンズ矩形があるのですか?
これで、それぞれのプロパティが使用される状況が明確になったかと思います。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン