转载自:http://www.cnblogs.com/pengyingh/articles/2343200.html

UIActionSheet类系IOS开发中实现警告框的重要的类,而在好多应用中,都对它进行了扩展,今天介绍一下自定义风格的UIActionSheet

一、自定义CustomActionSheet类

CustomActionSheet类继承UIActionSheet,具体的实现如下所示:

1)CustomActionSheet.h头文件

#import <Foundation/Foundation.h>

@interface CustomActionSheet : UIActionSheet {

UIToolbar* toolBar;

UIView* view;

}

@property(nonatomic,retain)UIView* view;

@property(nonatomic,retain)UIToolbar* toolBar;

/*因为是通过给ActionSheet 加 Button来改变ActionSheet, 所以大小要与actionsheet的button数有关

*height = 84, 134, 184, 234, 284, 334, 384, 434, 484

*如果要用self.view = anotherview.  那么another的大小也必须与view的大小一样

*/

-(id)initWithHeight:(float)height WithSheetTitle:(NSString*)title;

@end

2)CustomActionSheet.m实现文件

#import "CustomActionSheet.h"

@implementation CustomActionSheet

@synthesize view;

@synthesize toolBar;

-(id)initWithHeight:(float)height WithSheetTitle:(NSString*)title

{

self = [super init];

if (self)

{

int theight = height - 40;

int btnnum = theight/50;

for(int i=0; i<btnnum; i++)

{

[self addButtonWithTitle:@" "];

}

toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];

toolBar.barStyle = UIBarStyleBlackOpaque;

UIBarButtonItem *titleButton = [[UIBarButtonItem alloc] initWithTitle:title

style:UIBarButtonItemStylePlain

target:nil

action:nil];

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"

style:UIBarButtonItemStyleDone

target:self

action:@selector(done)];

UIBarButtonItem *leftButton  = [[UIBarButtonItem alloc] initWithTitle:@"Cancel"

style:UIBarButtonItemStyleBordered

target:self

action:@selector(docancel)];

UIBarButtonItem *fixedButton  = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace

target:nil

action:nil];

NSArray *array = [[NSArray alloc] initWithObjects:leftButton,fixedButton,titleButton,fixedButton,rightButton,nil];

[toolBar setItems: array];

[titleButton release];

[leftButton  release];

[rightButton release];

[fixedButton release];

[array       release];

[self addSubview:toolBar];

view = [[UIView alloc] initWithFrame:CGRectMake(0, 44, 320, height-44)];

view.backgroundColor = [UIColor groupTableViewBackgroundColor];

[self addSubview:view];

}

return self;

}

-(void)done

{

[self dismissWithClickedButtonIndex:0 animated:YES];

}

-(void)docancel

{

[self dismissWithClickedButtonIndex:0 animated:YES];

}

-(void)dealloc

{

[view release];

[super dealloc];

}

@end

二、利用自定义的CustomActionSheet类显示提示框

#import "TestActionSheetViewController.h"

#import "CustomActionSheet.h"

@implementation TestActionSheetViewController

-(IBAction)btndown

{

CustomActionSheet* sheet = [[CustomActionSheet alloc] initWithHeight:284.0f

WithSheetTitle:@"自定义ActionSheet"];

UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0,50, 320, 50)];

label.text = @"这里是要自定义放的控制";

label.backgroundColor = [UIColor clearColor];

label.textAlignment = UITextAlignmentCenter;

[sheet.view addSubview:label];

[sheet showInView:self.view];

[sheet release];

}

@end

这里的UILabel是作一个示例,在这个位置你可以换成你自己的内容即可;

三、效果图

 
 

IOS开发UI篇之──自定义UIActionSheet的更多相关文章

  1. iOS开发UI篇—Quartz2D(自定义UIImageView控件)

    iOS开发UI篇—Quartz2D(自定义UIImageView控件) 一.实现思路 Quartz2D最大的用途在于自定义View(自定义UI控件),当系统的View不能满足我们使用需求的时候,自定义 ...

  2. IOS开发UI篇之──自定义加载等待框(MBProgressHUD)

    本文转载至 http://blog.csdn.net/xunyn/article/details/8064984   原文地址http://www.189works.com/article-89289 ...

  3. iOS开发UI篇—CAlayer(自定义layer)

    iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw ...

  4. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

  5. iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

    iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目文件结构和plist文件 二.实现效果 三.代码示例 1.没有使用配套的类,而是直接使用xib文 ...

  6. iOS开发UI篇—transframe属性(形变)

    iOS开发UI篇—transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ...

  7. iOS开发UI篇—简单的浏览器查看程序

    iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...

  8. iOS开发UI篇—从代码的逐步优化看MVC

    iOS开发UI篇—从代码的逐步优化看MVC 一.要求 要求完成下面一个小的应用程序. 二.一步步对代码进行优化 注意:在开发过程中,优化的过程是一步一步进行的.(如果一个人要吃五个包子才能吃饱,那么他 ...

  9. iOS开发UI篇—UITableview控件基本使用

    iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> ...

随机推荐

  1. static和const

    转自说出static和const关键字尽可能多的作用 static关键字至少有下列n个作用: 函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次 ...

  2. 用PYTHON硬写SOCKET

    这个文章的系列很有意思,练练~~: http://python.jobbole.com/82763/ :) 第一步,最简单的SERVER和CLIENT.感觉和写JAVA,C的最简单的一样一样的,,看来 ...

  3. 汇编函数调用中bp和sp是指什么?

    bp为基址寄存器,一般在函数中用来保存进入函数时的sp的栈顶基址sp是栈顶指针,它每次指向栈顶.每次子函数调用时,系统在开始时都会保存这个两个指针并在函数结束时恢复sp和bp的值.像下面这样:在函数进 ...

  4. easyui源码翻译1.32--Tabs(选项卡)

    前言 使用$.fn.tabs.defaults重写默认值对象.下载该插件翻译源码 选项卡显示一批面板.但在同一个时间只会显示一个面板.每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他 ...

  5. [jobdu]数组中的逆序对

    http://ac.jobdu.com/problem.php?pid=1348 数组中的逆序对也是个常见的题目,算法导论中也有一些描述,参考:http://www.cnblogs.com/wuyue ...

  6. 编写 Objective-C 代码

    如果您未曾开发过 iOS 或 Mac OS X 平台的程序,那就需要开始了解它们的首要程序设计语言 Objective-C.Objective-C 并不是一种很难的语言,如果能花一点时间学习,相信您会 ...

  7. 精通phthon的条件

    1. 熟知主流硬件体系(x86, x64)2. 熟知 CPython 的具体实现,如若可能至少通读源码三遍以上3. 熟知每条 Python bytecode 如何被解释执行4. 熟知每条 Python ...

  8. WCF - Self Hosting

    WCF - Self Hosting Here, the WCF service is hosted in a console application. Given below is the proc ...

  9. bzoj3144

    最小割解决最优值最突出的特点就是要将对象划分到两个集合中这题很明显,裸的最小割先把点连成一根根柱子,就是p(x,y,k)-->p(x,y,k+1)流量是P(x,y,k+1)的不和谐值然后s与p( ...

  10. BZOJ_1618_ [Usaco2008_Nov]_Buying_Hay_购买干草(动态规划,完全背包)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1618 有n种物品,每种物品有价值和重量,可以无限拿.现在要满足价值之和大于等于h,问最小重量. ...