2012-02-28 7 views
1

プロジェクトに取り組んでいます。ここには、ドロップを受け入れるビューがある既存のウィンドウがあります。しかし、ドロップが完了したら、テーブルビューを追加して、テーブルビューに合わせてウィンドウのサイズを大きくする必要があります。古いappzapperアプリがその一例になります。cocoa - 既存のウィンドウにビューを追加してサイズを変更する

私はこれを前にやっていないし、誰かが私がこれをやる方法や偉大なチュートリアルの正しい方向で私を指摘することができます。

答えて

3

それを行うには多くの方法が、それらはすべてこれに煮詰める:

  1. をビューを作成し、あなたのケースでは、スクロールビュー と内部のテーブルビューで、おそらくカスタムビュー。あなたはカスタム ビューでそれを囲みたいとは思わないかもしれませんが、後でボタン または他の要素を追加する必要がある場合に便利です。
  2. ビューのフレームを設定します。ハードコーディングすることもできますし、他の要素の位置を にしてそこから計算することもできます。
  3. は、あなたが後でそれから、もう一度それを削除追加したばかりのサブビューにremoveFromSuperviewを呼びたいなら、それ (addSubview:

を追加するために新しいビューを追加するビューを教えてください。

Re:1 - 好きなように、ペン先やコードで表示することができます。

あなたのコーディングスタイルに応じて、ニブの元のデザインにサブビューの権利を追加し、それをawakeFromNibで削除し、コントローラへの参照を保持しておくと便利です。元のビューのサイズを変更します。

レイアウトストラットが正しく設定されていることを確認し、UIの他の部分を独自のビューで折り返して、サイズ変更時に予期せず移動しないようにすることができます。

このアプローチでは、サブビューをもう一度追加すると、大きなビューを元のサイズに戻します(awakeFromNibの間にコントローラに読み込んで保存することができます)。それは既に正しいフレームを持っていて、Interface Builderで作成したペン先(またはそれに相当するXcode)に置きます。

+0

ありがとうございます。私がこれを試してみましょう、私はあなたが私のやり方を知らせるでしょう: – rick

+0

ええ、私はそれを持っていると思います。私はフェーディング/アニメーションを実験していますが、一般的な考えは私に非常に感謝してくれました。私は尋ねることができると思いますが、あなたが説明した方法でサブビューを追加するのではなく、ウィンドウにsetContentView:を呼び出す人がいます。どちらの方法も罰金か、それとも賛否両論ですか?再度、感謝します! – rick

+0

私の答えに記載されているアプローチについては、いくつかの異なる要素がUI内に存在する必要があります。できればビューでグループ化されます。つまり、これらのビューがウィンドウのcontentViewのすべてのサブビューである場合です。 contentView全体を設定することは、たとえば、環境設定パネルのように、ウィンドウ全体の新しいコンテンツを入れ替えると意味があります。 – Monolo

関連する問題