最近的工程有一个个人资料页面,需要填写生日和地区的信息,需要自己定义个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. Custom Data Service Providers

    Custom Data Service Providers Introduction Data Services sits above a Data Service Provider, which i ...

  2. 第20章 状态模式(State Pattern)

    原文 第20章 状态模式(State Pattern) 状态模式  概述:   当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表 ...

  3. HTML5 画一张图

    笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/33344289 一.绘制图像 使用drawImage()方法绘制图像. 画图环 ...

  4. HTML在Select具体的使用说明

    <html> <head> <SCRIPT LANGUAGE="JavaScript"> <!-- //oSelect 列表的底部加入了一 ...

  5. SpringMVC4 + Spring + MyBatis3

    SpringMVC4 + Spring + MyBatis3 本文使用最新版本(4.1.5)的springmvc+spring+mybatis,采用最间的配置方式来进行搭建. 1. web.xml 我 ...

  6. 【高德地图API】那些年我们一起开发的APP—即LBS应用模式分享

    原文:[高德地图API]那些年我们一起开发的APP—即LBS应用模式分享 摘要:利用地图API都能做些什么应用呢?应用商店里所有的分类,都可以结合上LBS来丰富应用.除了传统的生活服务应用,还有新潮的 ...

  7. asp.net webform easyui

    建议使用   html 页面 和 一般处理程序,一般处理程序 继承 IRequiresSessionState  ,才能用 session .

  8. MonkeyRunner源码分析之-谁动了我的截图?

    本文章的目的是通过分析monkeyrunner是如何实现截屏来作为一个例子尝试投石问路为下一篇文章做准备,往下一篇文章本人有意分析下monkeyrunner究竟是如何和目标测试机器通信的,所以最好的办 ...

  9. 请确保在编译时已将“AjaxControlToolkit.Properties.Resources.NET4.resources”正确嵌入或链接到程序集“AjaxControlToolkit”

    原文:请确保在编译时已将"AjaxControlToolkit.Properties.Resources.NET4.resources"正确嵌入或链接到程序集"AjaxC ...

  10. 腾讯QQ音乐网页版 音频初始化模块解压混淆js源码

    define("js/view/playerBar.js",function(t,e,o){ var i = t("js/lib/zepto.js"), a = ...