关于模态弹窗点击灰色区域消失
来源:互联网 发布:mac vim python 配置 编辑:程序博客网 时间:2024/04/29 09:28
标题是不是写的很有诗意?我自己也觉得有点儿迷糊,其实就是这样需求:模态弹出来的窗口,需要点击窗口以外的区域,也就是模态区域让这个窗口消失。一般这种场景会出现在iPad里,当你modalPresentationStyle为UIModalPresentationFormSheet时,会有这种需求。网上找了一下,这种东东还真能实现,于是想着UIAlertView是不是也可以实现呢?你猜咋地,竟然真的可以。
其实原理就是在弹框给那个view的window注册一个点击事件,然后在点击事件里判断点击区域是不是模态区域,具体代码如下:
- (IBAction)showAlert:(id)sender { alert = [[UIAlertView alloc] initWithTitle:@"模态测试" message:@"请点击四周的模态区域我就消失" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show]; recognizerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapBehind:)]; [recognizerTap setNumberOfTapsRequired:1]; recognizerTap.cancelsTouchesInView = NO; [alert.window addGestureRecognizer:recognizerTap];}- (void)handleTapBehind:(UITapGestureRecognizer *)sender{ if (sender.state == UIGestureRecognizerStateEnded){ CGPoint location = [sender locationInView:nil]; if (![alert pointInside:[alert convertPoint:location fromView:alert.window] withEvent:nil]){ [alert.window removeGestureRecognizer:sender]; [alert dismissWithClickedButtonIndex:0 animated:YES]; } }}
- 关于模态弹窗点击灰色区域消失
- 关于模态弹窗点击灰色区域消失
- 模态弹窗(对话框)点击灰色区域消失
- 模态弹窗,点击黑色半透明区域消失
- 关于点击popupwindow以外区域 popupwindow自动消失问题
- 关于点击popupwindow以外区域 popupwindow自动消失问题
- 关于点击popupwindow以外区域 popupwindow自动消失问题
- 关于点击popupwindow以外区域 popupwindow自动消失问题
- 关于点击popupwindow以外区域 popupwindow自动消失问题
- Dialog点击其他区域消失
- 点击PopupWindow 外部区域消失
- PopupWindow点击外部区域消失
- jQuery点击区域外消失
- popupwindow点击其它区域自动消失
- PopupWindow点击外面区域自动消失
- android alertdialog 点击其他区域消失
- jquery实现鼠标点击区域外消失
- 点击div以外的区域div消失
- Android移植之自定义ProgressBar
- Spring定时任务执行的2中方法
- HDU--1017--A Mathematical Curiosity
- Hibhibernate中的映射关系分析汇总
- MVC 3.0 在各个版本IIS中的部署
- 关于模态弹窗点击灰色区域消失
- android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式
- Android手势:单指拖动、双指缩放图片
- XML注意的转义字符
- FLAG_ACTIVITY_CLEAR_TOP 和 FLAG_ACTIVITY_REORDER_TO_FRONT
- 获取J2ee工程在应用服务器(如tomcat)下的物理路径
- 文件移动 Java实现
- 避免MPMoviePlayerViewController播放完毕后自动dismiss,进入后台自动dismiss
- linux ssh攻击 服务器自动重启