2011-06-29 8 views
2

私はゲームの任意のポイントで表示できるカスタムUIViewを作成しようとしています。つまり、UIViewは特定のUIViewControllerに関連付けられていません。UIViewControllerなしでUIViewを表示

私の解決方法は、私のカスタムUIViewにUIViewController *を格納し、UIViewControllerが変更を使用しているときにそれを設定し、UIViewをコントローラのサブビューとして追加することです。

これを処理するにはより良い、より安全な方法が必要であると思いますが、これまで何も見つけることができませんでした。

ありがとうございました

+0

ちょっと好奇心 - あなたは何らかのバナーを作ろうとしていますか? – Moshe

+0

はい、UIViewControllerを使用していない場合は作成しないでください。 – bshirley

+0

ええ、それは一種のバナーです。実際に表示される画面とは別のものです。アプリ内のどの画面に(理論上)表示される可能性があるためです。私の目標は、ビューコントローラから完全に分離して、すべてのビューコントローラに追加することを心配する必要がないようにすることです。 – cdowns745

答えて

5

UIViewサブクラスを作成します。ファイル>新規ファイル> Objective-Cクラス>(のサブクラス)UIView>クラス名を付けます。

だから今、あなたはMyCustomView.hのようなものを持っていて、カスタムビューのインポートにヘッダファイルを表示するビューコントローラで

#import "MyCustomView.h" 

を.M必要がありますその後、単にあなたにそれを追加現在のビュー

MyCustomView *myCView = [[MyCustomView alloc] initWithFrame:<Where You Want It>]; 
[self.view addSubview:myCView]; 
[myCView release]; 

グラフィカルにカスタムビューをレイアウトすることができます。または、プログラムで行うこともできます。 IBの方法に進む場合は、新しいファイルを作成し、ユーザーインターフェイスをクリックし、表示します。同じクラス名(MyCustomView)を付けてください。

[ファイル所有者]を選択すると、アイデンティティインスペクタが表示されます(オプションコマンド3)。 クラスの場合は、NSObjectからMyCustomViewに変更します。

+0

私はすでにそれをすべて有効にしていますが、問題は別のビューまたはビューコントローラに追加しないようにしようとしていることです。私はちょうど画面にまっすぐにビューを描画したい。 – cdowns745

+0

次に、ウィンドウまたはルートビューコントローラにそれを追加し、Z順序を使用して他のビューの前にあることを確認する必要があります。 – Andrew

+0

ああ、私はちょうどウィンドウにそれを追加することはできませんでした。 もちろん...それは画面の横に横に表示されますが、修正するのは簡単なはずです。 ありがとう – cdowns745

関連する問題