最近的工程有一个个人资料页面,需要填写生日和地区的信息,需要自己定义个actionsheet。

但是到网上搜了一下都不太合适,只好自己研究研究,重写了一个。共享出来给大家用用,突然发现自己精神很高尚吗、,哈哈,其实是方便自己以后遇到类似的工程直接引用就好了。

先上效果图:

结构图:

这里简单介绍一下Actionsheet类

.h

//
// CustomActionSheet.h
// test
//
// Created by wxian on 13-12-2.
// Copyright (c) 2013年 wxian. All rights reserved.
// #import <UIKit/UIKit.h> @interface CustomActionSheet : UIActionSheet <UIActionSheetDelegate>
{ NSString* customTitle;
} -(id)initWithHeight:(float)height WithSheetTitle:(NSString*)title;
@property (nonatomic, retain) UIView *customView; @end

.m

//
// CustomActionSheet.m
// test
//
// Created by wxian on 13-12-2.
// Copyright (c) 2013年 wxian. All rights reserved.
// #import "CustomActionSheet.h" #define NavBarHeight 40
#define ViewHeight 459 @interface CustomActionSheet(){
@private
float customViewHeight;
} @end @implementation CustomActionSheet -(id)initWithHeight:(float)height WithSheetTitle:(NSString *)title
{
self = [super init];
if (self) {
customViewHeight = height;
customTitle = title;
self.customView = [[UIView alloc] initWithFrame:CGRectMake(, ViewHeight - customViewHeight, , customViewHeight)];
}
return self;
} //重写layoutSubviews
-(void)layoutSubviews
{
[super layoutSubviews];
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(, ViewHeight - customViewHeight -NavBarHeight, , NavBarHeight)];
navBar.barStyle = UIBarStyleDefault;
UINavigationItem *navItem = [[UINavigationItem alloc]initWithTitle:customTitle];
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]initWithTitle:@"取消" style:UIBarButtonItemStyleBordered target:self action:@selector(docancel)];
navItem.leftBarButtonItem = leftButton;
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc]initWithTitle:@"确定" style:UIBarButtonItemStyleBordered target:self action:@selector(done)];
navItem.rightBarButtonItem = rightButton;
NSArray *array = [[NSArray alloc ]initWithObjects: navItem, nil];
[navBar setItems:array];
[self.superview addSubview:navBar];
[self.superview addSubview:self.customView]; } - (void) done{
[self dismissWithClickedButtonIndex: animated:YES];
[self.delegate actionSheet:self clickedButtonAtIndex:];
} - (void) docancel{
[self dismissWithClickedButtonIndex: animated:YES];
[self.delegate actionSheet:self clickedButtonAtIndex:];
} @end

猛戳下载原代码

【ios开发】自定义Actionsheet实现时间选择器和省市区选择器的更多相关文章

  1. IOS开发之格式化日期时间

    IOS开发之格式化日期时间(转)   在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如: //实例化一个NSDateFor ...

  2. iOS开发自定义字体之静态字体

    最后更新 2017-04-25 在iOS开发中经常会用到字体, 一般字体文件比较小的,单一的,几十k, 可以通过内置进去;如果字体文件比较多或者字体文件比较大,通常通过动态加载方式. 静态加载方式 将 ...

  3. iOS开发之格式化日期时间(转)

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateForma ...

  4. iOS 开发自定义一个提示框

    在开发的时候,会碰到很多需要提示的地方,提示的方法也有很多种,ios 8 以前的版本有alertview还是以后用的alertController,都是这种作用, 但是不够灵活,而且用的多了,用户体验 ...

  5. [IOS 开发] 自定义(重写) UITableViewCell的高亮背景色

    IOS的sdk中,对UITableViewCell的高亮背景色只支持两种颜色,分别为UITableViewCellSelectionStyleBlue和UITableViewCellSelection ...

  6. IOS开发之格式化日期时间的使用 && 编程中常见问题

    今天在做一个有关时间的一些开发的时候,遇见了一写问题,反正来说既是很简单的问题,但毕竟用了我一些时间去调错误,遂记录之. 本来是想用 NSDateFormat 来转换一下服务器返回的时间,然后在客户端 ...

  7. iOS开发-自定义UIAlterView(iOS 7)

    App中不可能少了弹框,弹框是交互的必要形式,使用起来也非常简单,不过最近需要自定义一个弹框,虽然iOS本身的弹框已经能满足大部分的需求,但是不可避免还是需要做一些自定义的工作.iOS7之前是可以自定 ...

  8. IOS开发自定义CheckBox控件

    IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码 效果图: UICheckBoxButton.h文件如下: #import #imp ...

  9. iOS开发自定义转场动画

    1.转场动画 iOS7之后开发者可以自定义界面切换的转场动画,就是在模态弹出(present.dismiss),Navigation的(push.pop),TabBar的系统切换效果之外自定义切换动画 ...

随机推荐

  1. nodejs爬虫系统

    其中express是服务端框架 request相当于前端的ajax请求 cheerio相当于jq 开始 首先我们先新建一个 crawler目录 执行 npm install express -g 命令 ...

  2. crawler_爬虫分布式设计图收集_01

  3. linux_shell_拆分文件_多进程脚本

    [需求场景]:一个10000w行的文件处理  ,多进程处理  比如启动100个进程同时处理. [方法]:拆分文件(split) ,制作shell脚本  执行后台进程 [demo]: 假设处理程序为   ...

  4. 带格式分离两个RichEditControl的文本

    using( RichEditControl selector = new RichEditControl() { RtfText = richTextFromHtml } ) { DocumentR ...

  5. The Swift Programming Language-官方教程精译Swift(4)字符串和字符

    String 是一个有序的字符集合,例如 "hello, world", "albatross".Swift 字符串通过 String 类型来表示,也可以表示为 ...

  6. 让你的Windows不断重启的C语言代码

    原文:让你的Windows不断重启的C语言代码 没有写Linux的原因是因为搞不定Linux下的权限问题,而Windows下基本上使用电脑的用户都是管理员,所以钻个空了,不多说下面是代码#includ ...

  7. Asp.Net MVC5入门学习系列①

    原文:Asp.Net MVC5入门学习系列① 现在直接开始MVC5的学习系列,学习资源来自Micrsoft. 开始使用Asp.Net MVC 5 打开Visual Studio 2013,然后新建一个 ...

  8. C语言中嵌入式SQL语句

    原文:[转载]C语言中嵌入式SQL语句 http://blog.csdn.net/cnlht/archive/2007/12/12/1930960.aspx原文地址 实验内容: 掌握SQL Serve ...

  9. MVC多模板支持

    参考: ASP.NET MVC:多模板支持

  10. Node.js连接MySQL数据库及构造JSON的正确姿势

    做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下 ...