UIActionSheet在有Tabbar的情况下取消按钮触摸被遮

来源:互联网 发布:社交网络结构挖掘 编辑:程序博客网 时间:2024/06/11 02:30

UIActionSheet最后一个按钮没响应,一般是cancelButton,要稍微向上偏移一点才可以。

不过这不是常态,几乎没多少人碰到这个问题,这是在特定情况下才会发生,这个场景就是试用了UITabBar的时候才有。

参考:http://stackoverflow.com/questions/2096852/iphone-weird-bug-between-uiactionsheet-and-uitabbar

解决办法:

        UIActionSheet *action  =

        [[UIActionSheet alloc] initWithTitle:@"您是否拨打"

                                    delegate:self 

                           cancelButtonTitle:@"取消拨打"

                      destructiveButtonTitle:@"拨打" 

                           otherButtonTitles:@"加入电话本",nil];

        //[action showInView:self.view];  把这行更换为下面这个

        [action showInView:[UIApplication sharedApplication].keyWindow];

        [action release]; 

据闻是tabbar刚好在取消按钮的地方,所以离奇了,不过UIActionSheet是在tabbar上方,很难想象会出现这个问题。


第二个方案:

你调用– showInView: 时传入的View 有问题,那个View的区域就不包括底下的TabBarController

你的 view size 不够. 或者你显示的方式不对. 比如你页面下方有一个 tabbar, 但是你显示是 showInView 有可能会出现这中情况,  改为 showFromTabbar .


恩,是被tabbar挡住了
解决:[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

我的是有一个tabbar,我用的办法:[alertshowFromTabBar:self.tabBarController.tabBar];
0 0