2011-04-19 28 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]; 

你知道吗,我现在知道为什么苹果希望这个操作表是不透明的。半透明动作片取消按钮与选定的条形项目(蓝色条)有点冲突。这不是“如此”被注意到,但我认为不透明的是更好的解决方案。