2

私は、Java / C#およびC /C++からのcocoa/objective-Cを初めて使用します。ココアは私にたくさんの頭痛を与えてきました。ココアのビュー階層に関するリンゴの記事を読みました。しかし、それでも混乱。

インターフェイスビルダーを介さずにプログラムでサブビューをビューに追加するタイミングを知る必要があります。同じ親ビューに他のサブビューがあると仮定して、ビューは他のサブビューに対して正確にどこに配置されますか。

Javaにはレイアウトマネージャーがあり、C#には垂直/水平パネルなどもあるので、アイテム/コントロールを追加すると、既存のアイテムの右側または下部に配置されます。

したがって、次の行に示すように行うと、新しいサブビューが配置される場所を正確に決定するのは何ですか?

    [[window contentView] addSubview:newView];

ありがとう、

4

5 に答える 5

3

ビューのフレームは、スーパービューの座標で占める四角形を定義するため、その位置は になりますframe.origin。これは、サブビューを追加する前または後に設定できます。

これは、 View Programming Guideでかなり明確に説明されています。

于 2013-02-11T07:34:51.533 に答える
1

長方形は、スーパービューでのframeビューのサイズと位置を示します。デフォルトでは、フレームは 0,0 (x,y) の位置にあり、サイズは 0,0 (w,h) です。サブビュー コレクション内の位置は、NSSplitView などのまれなケースを除いて完全に無視されます。

于 2013-02-11T07:34:11.970 に答える
1

Cocoa はビューを自動的に整列しません。.net や Java のような初期レイアウト メカニズムはありません。
フレームをポイントで設定して、すべてのビューを手動で配置する必要があります。
デフォルトでは、新しく初期化されたビューの原点は (0,0) です。

于 2013-02-11T07:35:23.797 に答える
0

AFAIK、ドキュメントとヘッダーファイルは、追加されたサブビューが配置される原点(x、y)を正確に指定していません。サブビューを追加した後、CGRectMake()を使用してサブビューを再配置する前に、新しい原点(および該当する場合)のサイズを計算します。

于 2013-02-11T07:28:08.303 に答える