Iphone 当从选项卡栏显示时,如何使UIActionSheet半透明?

Iphone 当从选项卡栏显示时,如何使UIActionSheet半透明?,iphone,uiactionsheet,Iphone,Uiactionsheet,我使用的是一个非常简单的UIActionSheet。代码如下: UIActionSheet *editActionSheet = [[UIActionSheet alloc] initWithTitle:@"What do you like to do?" delegate:self

我使用的是一个非常简单的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];
虽然我将动作表样式设置为半透明,但它始终显示为不透明。我不知道为什么


谢谢,

当从选项卡栏显示操作表时,它将始终呈现选项卡栏的外观。在这种情况下,不能使其半透明。我还没有尝试过将UIActionSheet子类化并覆盖任何颜色或绘图属性,但这可能值得一试


我建议您更改问题的标题以反映实际问题(例如,当从选项卡栏显示UIActionSheet时,如何使其半透明?

XJones,最后,我成功地获得了半透明的操作表

首先,我隐藏选项卡栏,然后显示半透明的操作表,然后立即显示选项卡栏。最后的代码如下所示:

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];

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

我在我创建的一个应用程序中使用了
[editActionSheet showInView:appDel.tabBarController.superview]
而不是
[editActionSheet showFromTabBar:appDel.tabBarController.tabBar]。在所有意图和目的上实现相同的事情,并且比您的答案更容易实现。另一种方式。

从选项卡栏显示操作表有什么具体原因吗?实际上没有。只是一个操作表,你喜欢什么?我只是偶然发现了同样的问题,但是当我访问我的tabBarcontroller时,没有.superview可供选择。有什么想法吗?嗯,不太清楚为什么会这样。尝试在tabBarController.view中显示它(如果存在)?我现在不在我的开发计算机上。谢谢你的快速回复!是的,如果我使用[editActionSheet showInView:appDel.tabBarController.view]:)它会起作用,你最好使用
[editActionSheet showInView:appDel.tabBarController.tabBar.superview]tabBarController.view
tabBarController.tabBar.superview
时,code>似乎同样有效。