2011-06-29 50 views
2

我想創建一個自定義的UIView,可以在遊戲中的任何點顯示。換句話說,UIView沒有綁定到特定的UIViewController。顯示UIView沒有UIViewController

現在我的解決方案是在我的自定義UIView中存儲UIViewController *,每當我使用UIViewController進行更改時將其設置,然後將UIView作爲控制器的子視圖添加。

我認爲必須有一個更好,更安全的方式來處理這個問題,但目前爲止我還沒有找到任何東西。

謝謝

+0

只是好奇 - 你想製作某種旗幟嗎? – Moshe

+0

是的,如果你不使用UIViewController,不要創建它! – bshirley

+0

是的,這是一個各種各樣的旗幟。它與實際顯示的屏幕分開,因爲它可以(理論上)顯示在應用程序的任何屏幕上。我的目標是讓它完全獨立於視圖控制器,這樣我就不必擔心它會被添加到每個視圖控制器中。 – cdowns745

回答

5

製作一個UIView子類。 File> New File> Objective-C Class>(UIView的子類)>給它一個類名。

所以,現在你應該有類似MyCustomView.h和.M

在視圖控制器,你要顯示的自定義視圖導入頭文件

#import "MyCustomView.h" 

然後簡單地把它添加到您的當前視圖

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

您可以使用Interface Builder以圖形方式佈置自定義視圖。或者你可以通過編程來完成。如果您要採用IB方式,請創建一個新文件,單擊用戶界面和查看。給它相同的類名,即(MyCustomView)。

選擇File Owner顯示Identity Inspector(選項命令3)。 對於Class,將其從NSObject更改爲MyCustomView。

+0

我已經完成了所有工作,問題是我試圖避免將其添加到另一個視圖或視圖控制器。我只想直接在屏幕上繪製視圖。 – cdowns745

+0

然後,您應該將其添加到窗口或根視圖控制器,然後使用Z排序來確保它在任何其他視圖之前。 – Andrew

+0

啊,沒有意識到我可以把它添加到窗口。 當然......現在它顯示在屏幕側面,但應該很容易修復。 謝謝 – cdowns745