2012-10-04 47 views
0

我加入這個菜單到一個應用程序我工作:http://mobiledevelopertips.com/open-source/ios-open-source-animated-menu.html的iOS AwesomeMenu代表團和覆蓋

我是比較綠色目標C(只一直在努力爲不到一個月),我我不完全確定如何執行以下操作:

1)我想在按下按鈕打開菜單時在整個屏幕上添加一個灰色疊加層。我尋找的解決方案,但很多人似乎推薦DSActivityView這不適合我...我不需要加載泡沫。我想我可以下載源代碼並刪除泡泡,但這可能需要付出更多的努力。

我想我可以只實例化一個ImageView的,在0,0滴,並將其擴展到屏幕的界限,用透明的灰色PNG文件來源的......像

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
CGFloat screenWidth = screenRect.size.width; 
CGFloat screenHeight = screenRect.size.height; 

imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"transparent_gray.png"]]; 
imageView.frame= CGRectMake (0,0,screenWidth,screenHeight); 
[viewController addSubview:imageView]; 

然而,這種方法可能不會工作(我猜它不會涵蓋導航控制器,如標籤欄和狀態欄)。此外,我不確定如何從AwesomeMenu內部訪問viewController。我假設我必須將實例化AwesomeMenu的viewController引用傳遞給AwesomeMenu的一個函數,以便能夠將imageView部署到viewController中?

2)我想寫一個委託,當開始菜單動畫停止時會觸發,因此我可以將文本寫入覆蓋屏幕。有沒有一個超級簡單的方法來做到這一點,或者我將不得不只是對一些定時器啓動/回調感到困惑,並使回調將文本寫到我的屏幕上?噢 - 我從來沒有寫過一個委託,但我認爲當我想讓他們在動畫結束時觸發它變得有點複雜。

回答

1

恩,我認爲你對UIKit的工作方式有一些先入爲主的觀點。對於1),我建議搜索「查看封面屏幕」,並更好地瞭解問題,特別是與視圖動畫相關的問題。其次,有很多方法可以完成你的項目。如果你有AwesomeMenu的源代碼,你可以修改它執行的任何動畫。如果動畫是用animateWithDuration:animations:完成的,您可以添加一個completion:塊。如果你需要從幾個地方完成你的完成動畫,你可以考慮一個代表。您可以爲AwesomeMenu編寫一個類別來添加功能。就你而言,我認爲只需簡單的代碼修改即可。儘管沒有更多的代碼/事實很難說。

+0

沒有任何運氣尋找視圖覆蓋在SO上的屏幕。我在搜索中做得不好或者是否有錯別字? 謝謝,我會看看動畫功能。 –

+0

嘗試「ios全屏視圖」。很多答案。 – rsswtmr

+0

你確定我們在談論同樣的事情嗎?我特意尋找一種方法來投射灰色疊加層,除了AwesomeMenu之外,它將使整個屏幕變暗。 –