当我运行我的应用程序,我点击actionsheet按钮会出现这样的:通过它的父剪裁问题与UIActionSheet
呈现动作片。某些控件可能不会响应触摸。在iPhone上尝试 - [UIActionSheet showFromTabBar:]或 - [UIActionSheet showFromToolbar:]而不是 - [UIActionSheet showInView:]。
我该如何解决?
当我运行我的应用程序,我点击actionsheet按钮会出现这样的:通过它的父剪裁问题与UIActionSheet
呈现动作片。某些控件可能不会响应触摸。在iPhone上尝试 - [UIActionSheet showFromTabBar:]或 - [UIActionSheet showFromToolbar:]而不是 - [UIActionSheet showInView:]。
我该如何解决?
你可以尝试[MyActionSheet showInView:super.view];
或者如果你有中的UITabBar一样或UIToolbar然后,因为它表明,你可以使用[MyActionSheet showFromTabBar:self.tabBarController.tabBar];
或[MyActionSheet showFromToolBar:self.toolbar];
应该解决,如果你正在使用UINavigationViewController
因为该控制器使用[actionSheet showInView:self.parentViewController.view];
代替self.view
顶部导航栏作为默认值。
YourAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[actionSheet showFromTabBar:delegate.tabBarController.tabBar];
假设你使用TabBarController Xcode的模板作为开始:
我的决定,我几乎最相同的情况。
记住,你的工具栏可能是你的导航控制器的一部分。你可以用self.navigationController.toolbar
[sheet showInView:[UIApplication sharedApplication].keyWindow];
sheet.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-sheet.frame.size.height, [UIScreen mainScreen].bounds.size.width, sheet.frame.size.height);
此访问应该解决的问题。
谢谢,这是我唯一能解决的问题(只需稍加添加即可使用导航控制器)。 A与iOS6 + iOS7自定义窗口配置有类似的问题,在iOS7中,您将窗口向下移动20个点,并保持原样。 – 2013-12-04 07:20:37
另一个类似的解决方案,它具有UIPageViewController为我工作 - > UINavigationViewController - > TableViewController结构是:
[actionSheet showInView:self.view.superview];
使用此:
[actionSheet showInView:self.view.window];
这将迫使动作片是显示在导航栏上方并响应所有的点击。但请注意,如果您使用一些左/右滑动菜单库,则可能会导致actionSheet在屏幕外显示。只是测试...
我尝试了所有上述的答案无济于事。最终,我发现唯一的解决方案是减少操作表上的项目数量,这些项目已经溢出。
继承人的雨燕版本:
actionSheet.showInView(UIApplication.sharedApplication().keyWindow)
或self.navigationController.view 感谢 – LolaRun 2014-06-27 14:16:28