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