2011-04-19 59 views
3

我正在使用一個非常簡單的UIActionSheet。以下代碼如下:如何從標籤欄顯示UIActionSheet半透明?

UIActionSheet *editActionSheet = [[UIActionSheet alloc] initWithTitle:@"What do you like to do?" 
                  delegate:self 
                cancelButtonTitle:@"Cancel" 
               destructiveButtonTitle:@"Delete All Tasks" 
                otherButtonTitles:@"Arrange Task List", @"Mark All as Done", nil]; 

editActionSheet.actionSheetStyle = UIBarStyleBlackTranslucent; 
[editActionSheet showFromTabBar:appDel.tabBarController.tabBar]; 
[editActionSheet release]; 

儘管我將動作片樣式設置爲半透明,但它總是顯得不透明。我不知道爲什麼?

謝謝

+0

是否有一個特定的原因,你顯示的標籤欄的行動表? – 2011-04-19 23:49:47

+0

實際上沒有。只是一個行動表,你更喜歡什麼? – 2011-04-20 07:31:13

回答

9

我在創建的應用程序中所做的是使用[editActionSheet showInView:appDel.tabBarController.superview];而不是[editActionSheet showFromTabBar:appDel.tabBarController.tabBar];。完成所有意圖和目的的相同事情,並且比您的答案更容易實施。另一種方式。

+0

我只是偶然發現了同樣的問題,但是當我訪問我的tabBarcontroller沒有.superview可供選擇。有任何想法嗎? – rob1302 2012-06-20 05:40:07

+0

嗯。不知道爲什麼會發生這種情況。如果存在,試着在tabBarController.view中顯示它?目前我不在我的開發計算機上。 – 2012-06-20 06:01:58

+3

感謝您的快速回復!是的,如果我這樣做[editActionSheet showInView:appDel.tabBarController.view] :) – rob1302 2012-06-21 00:51:07

6

當從標籤欄它將始終採取標籤欄的外觀中所示的動作片。在這種情況下,你不能讓它變成半透明的。我沒有試過UIActionSheet的子類並覆蓋任何顏色或圖畫屬性,但這可能值得一試。

我建議你改變你的問題的標題,以反映實際的問題(例如,如何才能讓UIActionSheet半透明從標籤欄所示,當?)

+0

這幫了我很多... – 2011-04-20 07:31:46

+0

+1爲好的標題 – 2011-04-20 07:32:16

1

XJones,最後,我設法得到半透明行動片!。

首先,我隱藏標籤欄,然後顯示半透明的操作表和immediatley後顯示標籤欄。最終代碼將如下所示:

appDel.tabBarController.tabBar.hidden = YES; 
NSString *controlBar; 
if ([[settingsDictionary objectForKey:@"Task Control Bar"] isEqualToString:@"Hidden"]) { 
    controlBar = @"Show Task Control Bar"; 
} else { 
    controlBar = @"Hide Task Control Bar"; 
} 

UIActionSheet *editActionSheet = [[UIActionSheet alloc] initWithTitle:@"What do you like to do?" 
                  delegate:self 
                cancelButtonTitle:@"Cancel" 
               destructiveButtonTitle:@"Delete All Tasks" 
                otherButtonTitles:@"Arrange Task List", @"Mark All as Done", controlBar, nil]; 

editActionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent; 
[editActionSheet showInView:self.tableView]; 
appDel.tabBarController.tabBar.hidden = NO; 
[editActionSheet release]; 

你知道嗎,我現在知道爲什麼蘋果希望這個操作表是不透明的。半透明動作片取消按鈕與選定的條形項目(藍色條)有點衝突。這不是「如此」被注意到,但我認爲不透明的是更好的解決方案。