Ios iPhone“动作表取消”按钮仅对靠近中心的触摸做出响应

Ios iPhone“动作表取消”按钮仅对靠近中心的触摸做出响应,ios,uiactionsheet,Ios,Uiactionsheet,我以前遇到过类似的情况,按钮只对其视图的一部分进行触摸。我发现一个具有透明区域的图像视图位于更高的z级别上,这使重叠处的接触变得模糊。这是因为在添加遮挡视图之前,按钮被添加为子视图 在行动表的情况下,我认为它将在最高的z级超过其他任何东西。由于操作表刚刚初始化并显示,因此我无法看到有什么东西覆盖了按钮 (值得一提的是,我刚刚将该应用程序转换为通用应用程序,并在iOS 4.3和5.0中进行了测试。iPad上的操作表中没有“取消”按钮。在iOS 4.3和5.0中模拟iPhone时都存在此问题。) 我

我以前遇到过类似的情况,按钮只对其视图的一部分进行触摸。我发现一个具有透明区域的图像视图位于更高的z级别上,这使重叠处的接触变得模糊。这是因为在添加遮挡视图之前,按钮被添加为子视图

在行动表的情况下,我认为它将在最高的z级超过其他任何东西。由于操作表刚刚初始化并显示,因此我无法看到有什么东西覆盖了按钮

(值得一提的是,我刚刚将该应用程序转换为通用应用程序,并在iOS 4.3和5.0中进行了测试。iPad上的操作表中没有“取消”按钮。在iOS 4.3和5.0中模拟iPhone时都存在此问题。)

我正在寻找其他关于问题原因的想法

更新 下面是显示操作表的代码

- (void) shareButtonPressed {

    SHKItem *item = [SHKItem larkspreeSearchResult:searchResult];
    item.image = eventImageRaw;

    // Get the ShareKit action sheet
SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // Display the action sheet
    [actionSheet showInView:self.view];

}
因为这是一个子类的操作表,所以这个来自ShareKit的文件可能也会有帮助

+ (SHKActionSheet *)actionSheetForType:(SHKShareType)type
{
SHKActionSheet *as = [[SHKActionSheet alloc] initWithTitle:SHKLocalizedString(@"Share")
                                                      delegate:self
                                         cancelButtonTitle:nil
                                    destructiveButtonTitle:nil
                                         otherButtonTitles:nil];
as.item = [[[SHKItem alloc] init] autorelease];
as.item.shareType = type;

as.sharers = [NSMutableArray arrayWithCapacity:0];
NSArray *favoriteSharers = [SHK favoriteSharersForType:type];

// Add buttons for each favorite sharer
id class;
for(NSString *sharerId in favoriteSharers)
{
    class = NSClassFromString(sharerId);
    if ([class canShare])
    {
        [as addButtonWithTitle: [class sharerTitle] ];
        [as.sharers addObject:sharerId];
    }
}

// Add More button
[as addButtonWithTitle:SHKLocalizedString(@"More...")];

// Add Cancel button
[as addButtonWithTitle:SHKLocalizedString(@"Cancel")];
as.cancelButtonIndex = as.numberOfButtons -1;

return [as autorelease];
}

showInView方法尚未被覆盖。

如果此视图控制器是配置了工具栏或
UITableController的
UINavigationController
的一部分,则需要在父控制器的视图中显示任何操作表。例如,
[actionSheet showInView:self.navigationController.view]
[操作表showInView:self.tabBarController.view]

请从相关视图控制器粘贴代码。特别是在您将
-showInView:
发送到操作表的位置。我用一些代码进行了更新。请让我知道,如果更多将是有益的。你有一个底部酒吧的一些排序?如果此视图控制器是配置了工具栏的
UINavigationController
uitabarcontroller
的一部分,则需要在父控制器的视图中显示任何操作表。例如,
[actionSheet showInView:self.navigationController.view]
[操作表showInView:self.tabBarController.view]。如果你把答案写出来的话,我会相信你的。跟你说的不太一样。我的视图在tabbar控制器中。但是,没有self.tabbar控制器,所以我尝试了
[actionSheet showInView:self.view.superview],这就行了。然后我尝试了
[actionSheet showInView:[[UIApplication sharedApplication]keyWindow],将它放在窗口中,这就成功了。不过,我在文档中没有看到这个要求。你能指出这一点吗?你真的应该开始考虑使用
UIViewController
来管理要添加到
uitabarcontroller
中的视图。通过直接操作视图层次结构,您错过了许多免费功能。