UIAlertController高级之嵌入其他控件
在编码过程中,我们经常遇到需要这样一个效果,就是弹出框的嵌套;
举个最简单的例子,比如你要选择时间,必然需要一个时间选择器DatePicker.但是这个选择器又是在你点击某按钮时弹出,弹出方式最常见的就是上拉菜单了,所以这就涉及了AlertController嵌入DatePicker; 因为前一篇我已经说过了,在IOS8之后,苹果已经废弃了actionSheet;那么我们就要重新来玩这个嵌套了.
那么我拿刚才写的一个小demo来说一下
#define BUTTONSIZE 40
// datePicker创建方法
- (void)creatDatePicker
{
self.datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0*WIDTH, 20*HEIGHT, 320*WIDTH, 216)];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
// 设置中文显示
self.datePicker.locale = locale;
// 设置时区
[self.datePicker setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+0800"]];
// 设置当前显示时间
// 设置初始时间
[self.datePicker setDate:[NSDate date] animated:YES];
// 设置选择器类型
self.datePicker.datePickerMode = UIDatePickerModeDate;
[self.datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
}
- (void)datePickerValueChanged:(UIDatePicker*)datePicker
{ }
<pre name="code" class="objc">// 弹出上拉菜单
- (void)actionSheetShow
{
self.alertController = [UIAlertController alertControllerWithTitle:@"\n\n\n\n\n" message:@"\n\n\n\n\n\n" preferredStyle:UIAlertControllerStyleActionSheet];
// UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, -20, 360, 316)];
// imageView.image = [UIImage imageNamed:@"SlotMachineBackground@2x.png"];
// [alertController.view addSubview:imageView];
UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:CGRectMake(-10, -20, 385, 300)];
imageView2.image = [UIImage imageNamed:@"pickerBack.png"];
UIButton *sureButton = [self creatButtonWithFrame:CGRectMake(340, 5, 0.75 * BUTTONSIZE, 0.75 * BUTTONSIZE) action:@selector(dismissAlert:) image:[UIImage imageNamed:@"FBDsureImage"] title:nil];
sureButton.tag = 1000;
UIButton *errorButton = [self creatButtonWithFrame:CGRectMake(5, 5, 0.75 * BUTTONSIZE, 0.75 * BUTTONSIZE) action:@selector(dismissAlert:) image:[UIImage imageNamed:@"FBDerrorImage"] title:nil];
errorButton.tag = 1001;
[imageView2 addSubview:sureButton];
[imageView2 addSubview:errorButton];
imageView2.userInteractionEnabled = YES;
[self.alertController.view addSubview:imageView2];
[self.alertController.view addSubview:self.datePicker];
[self presentViewController:self.alertController animated:YES completion:nil];
}
// 创建button
- (UIButton *)creatButtonWithFrame:(CGRect)frame action:(SEL)sel image:(UIImage *)image title:(NSString *)title
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = frame;
[button addTarget:self action:sel forControlEvents:UIControlEventTouchUpInside];
[button setImage:image forState:UIControlStateNormal];
[button setTitle:title forState:UIControlStateNormal];
button.showsTouchWhenHighlighted = YES;
return button;
}
这样就实现了一个简单的AlertController嵌入DatePicker
UIAlertController高级之嵌入其他控件的更多相关文章
- UIAlertController高级之嵌入其他控件 分类: ios技术 2015-02-02 11:58 96人阅读 评论(0) 收藏
在编码过程中,我们经常遇到需要这样一个效果,就是弹出框的嵌套; 举个最简单的例子,比如你要选择时间,必然需要一个时间选择器DatePicker.但是这个选择器又是在你点击某按钮时弹出,弹出方式最常见的 ...
- WPF 精修篇 Winform 嵌入WPF控件
原文:WPF 精修篇 Winform 嵌入WPF控件 首先 创建WPF控件库 这样就有了一个WPF界面 在wpf中增加界面等 在winform中增加WPFDLL 重新生成解决方案 在左侧工具栏 出现W ...
- WPF 精修篇 WPF嵌入Winfrom控件
原文:WPF 精修篇 WPF嵌入Winfrom控件 先增加DLL 支持 使用 WindowsFormsHost 来加载Forms的控件 引用命名空间 xmlns:forms="clr-na ...
- 关于EasyUI DataGrid行编辑时嵌入时间控件
本人做一个名为“安徽中控”项目时,为快速开发基础数据增删改模块,遂采用EasyUIDatagrid将所有增删改查的操作都集中于表格中,并且所有增删改查操作都集中于泛型对象,从而不必为每个表写具体的增删 ...
- 关于intouch/ifix嵌入视频控件并使用(海康,大华)
2017年下半年项目开始接触利用intouch工控软件来进行项目二次开发.其中关于驱动的问题始终是上位机的重中之重,暂且不表(嘿嘿--),首先遇到的问题就是在弹窗中嵌入视频控件,监控设备的开停状态.经 ...
- ActiveReports 报表应用教程 (13)---嵌入第三方控件
葡萄城ActiveReports报表与Visual Studio完美集成,给我们带来更为灵活易用的报表定制和自定义控件嵌入支持,除了可以在报表中使用葡萄城ActiveReports报表内置控件外,您还 ...
- 在WinForm应用程序中嵌入WPF控件
我们知道,在WPF界面上添加WinForm的控件需要使用WindowsFormHost类.而在WinForm界面上添加WPF控件该如何做呢?有没有类似的类呢?明显是有的,ElementHost就是为了 ...
- 2015.1.3 DataGridView中嵌入其它控件
1.按正常方法绑定待嵌入列的值,先赋值为空也行. 2.添加combbox到datagrivdview中 dvaw.Controls.Add(cb_dir); 3.添加DataGridView Mous ...
- intouch/ifix嵌入视频控件2(报警视频联动初步思路)
在项目中有朋友遇到类似的需求,ifix中嵌入视频,并实现报警与视频的联动功能.诸如,重要设备启动时,摄像头自动弹窗,并持续一段时间自动弹窗关掉:设备故障时,摄像头自动截图,录像一段时间存储:设备停止时 ...
随机推荐
- 新建aix实例
http://www.cnblogs.com/kfarvid/archive/2010/12/21/1912553.html DB2数据库 http://wenku.baidu.com/view/ ...
- JS 新浪API获取IP归属地
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 返回值数据格式:var remote_ip_info = {“ret”:1,” ...
- POJ 3307 Smart Sister
先找出所有的数,排序,然后o(1)效率询问 #include<cstdio> #include<cstring> #include<cmath> #include& ...
- 关于DOMContentLoaded
也许还有朋友不太清楚DOMContentLoaded这个事件.简单的说,这个事件就是要在大多数情况下去替代window.onload事件,因为window.onload事件必须要等待页面所有元素的资源 ...
- vi命令
VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法 ...
- android脚步--Relativelayout设置
引自http://blog.csdn.net/lamp_zy/article/details/8035161 http://my.oschina.net/honeyming/blog/130761 以 ...
- HDOJ 1319 Prime Cuts<数论>
学会了不难.通过这道题学习了两点: 1:筛选法求素数. 2:在写比较长的程序的时候,给每个功能部分加上注释,思路会更清晰. 题意: 1.题目中所说的素数并不是真正的素数,包括1: 2.需要读懂题意,对 ...
- sql server 日期转换函数 convert()
--内容来自:http://hi.baidu.com/muqingz/item/8fb7b3ca8a485b0cac092f7b Select CONVERT(varchar(100), GETDAT ...
- [iOS]C语言技术视频-17-指针变量高级用法练习二(使用堆内存完成链表结构的存储)
下载地址: 链接: http://pan.baidu.com/s/1kTmwIYr 密码: j7xq
- 如何解决找不到方法HttpServletRequest.getServletContext() ---- NoSuchMethodError
报错 java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/serv ...