UIAlertController高级之嵌入其他控件 分类: ios技术 2015-02-02 11:58 96人阅读 评论(0) 收藏
在编码过程中,我们经常遇到需要这样一个效果,就是弹出框的嵌套;
举个最简单的例子,比如你要选择时间,必然需要一个时间选择器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高级之嵌入其他控件 分类: ios技术 2015-02-02 11:58 96人阅读 评论(0) 收藏的更多相关文章
- StatusStrip 分类: C# 2015-07-23 11:58 2人阅读 评论(0) 收藏
通过StatusStrip显示窗体状态栏 同时将状态栏分成三部分 居左边显示相关文字信息 中间空白显示 居右边显示时间信息 1.创建窗体及添加StatusStrip 默认StatusStrip名称 ...
- Javascript图片预加载详解 分类: JavaScript HTML+CSS 2015-05-29 11:01 768人阅读 评论(0) 收藏
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 分类算法简介 分类: B10_计算机基础 2015-03-09 11:08 257人阅读 评论(0) 收藏
一.决策树 决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序.无规则的实例中 推理出以决策树表示的分类规则.构造决策树的目的是找出属性和类别间的关系, ...
- MS SQLServer 批量附加数据库 分类: SQL Server 数据库 2015-07-13 11:12 30人阅读 评论(0) 收藏
************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注释 ...
- hdu 1057 (simulation, use sentinel to avoid boudary testing, use swap trick to avoid extra copy.) 分类: hdoj 2015-06-19 11:58 25人阅读 评论(0) 收藏
use sentinel to avoid boudary testing, use swap trick to avoid extra copy. original version #include ...
- Design T-Shirt 分类: HDU 2015-06-26 11:58 7人阅读 评论(0) 收藏
Design T-Shirt Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- Makefile 入门与基本语法 分类: C/C++ ubuntu 2015-05-18 11:16 466人阅读 评论(0) 收藏
在我看来,学会写简单的Makefile,阅读较复杂的makefile,是每一个Linux程序员都必须拥有的基本素质.Makefile可以自动识别哪些源文件被更改过,需要重新编译,那些不需要.从而节省大 ...
- jQuery中的on()和click()的区别 分类: 前端 HTML jQuery 2014-11-06 10:26 96人阅读 评论(0) 收藏
HTML页面代码 <div> <h1>Click</h1> <button class="add">Click me to add ...
- 企业证书APP发布流程 分类: ios相关 app相关 2015-06-10 11:01 212人阅读 评论(0) 收藏
企业发布app的 过程比app store 发布的简单多了,没那么多的要求,哈 但是整个工程的要求还是一样,比如各种像素的icon啊 命名规范啊等等. 下面是具体的流程 1.修改你的 bundle i ...
随机推荐
- java项目中使用guava的工具包的心得
原文:http://www. zuidaima.com/blog/3182745969511424.htm 以前只是听过这个工具包,但是真正用的话还是在D75需求中.我要实现把前台传入的list集 ...
- Chapter 1 First Sight——11
I didn't relate well to people my age. 我没有向人们叙述清楚我的年龄 Maybe the truth was that I didn't relate well ...
- hdu_5648_DZY Loves Math
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5648 题意:给你n,m 让你求出 for(1-n)for(1-m)gcd(i&j,i|j)的s ...
- JavaBean--简介及基本使用
JavaBean本身就是一个类,属于java的面向对象编程 JavaBean是使用java语言开发的一个可重用的组建,在JSP开发中如果要应用JSP提供的JavaBean标签来操作简单的类的话,需要满 ...
- SQL Server 2008登录问题(错误 233和18456)解决方法
今天使用 SQLSERVER2008 先遇到了233 错误,后又遇到了 18456 ,从网上找到了解决方法,具体如下: 问题一 : 已成功与服务器建立连接,但是在登录过程中发生错取.(provider ...
- Hibernate的generator属性
本文讲述Hibernate的generator属性的意义.Generator属性有7种class,本文简略描述了这7种class的意义和用法. <class name="onlyfun ...
- hrbustoj 1494(原题UVA 315 Network) 解题报告 tarjan求割点
主要思路:使用tarjan选取一个根节点建立一个棵搜索树,判断一个点是割点的充分必要条件是,对于一个节点u如果他的孩子节点v的low值大于等于u的出生日期dfn值,进行下一步判断,如果u是我们选的根节 ...
- HDU 4638 (莫队)
题目链接:Problem - 4638 做了两天莫队和分块,留个模板吧. 当插入r的时候,设arr[r]代表r的位置的数字,判断vis[arr[r-1]]和vis[arr[r+1]]是否访问过,如果两 ...
- 有两个数据库A和B,数据库A中有表a,如何把表a映射到数据库B中,sql 2005
select * into B.dbo.a from A.dbo.a 就把表同步过去如果只同步表结构select * into B.dbo.a from A.dbo.a where 1<> ...
- 【转】简单模拟angular的依赖注入
原文:http://www.oschina.net/code/snippet_1181081_35136 代码片段 var angular = function(){}; Object.defineP ...