重写AlertView(用block)
@interface AlertView : UIView
@property (nonatomic,copy) void(^block)(UIColor *color);
- (id)initWithAlertView;
- (void)showTwo;
@end
自定义View的.m文件
- (id)initWithAlertView
{
self = [super init];//自定义init方法 就是重写了系统的init方法;
if (self)
{
UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
btn1.backgroundColor = [UIColor redColor];
btn1.frame = CGRectMake(5, 100, 40, 25);
[btn1 addTarget:self action:@selector(btn1Click:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn1];
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
btn2.backgroundColor = [UIColor greenColor];
btn2.frame = CGRectMake(150, 100, 40, 25);
[btn2 addTarget:self action:@selector(btn2Click:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn2];
}
return self;
}
- (void)btn1Click:(UIButton *)btn
{
self.block(btn.backgroundColor);
[self removeFromSuperview];
}
- (void)btn2Click:(UIButton *)btn
{
self.block(btn.backgroundColor);
[self removeFromSuperview];
}
主界面的.m
- (IBAction)buttonClick:(id)sender
{
AlertView *alertView = [[AlertView alloc] initWithAlertView];
alertView.backgroundColor = [UIColor grayColor];
alertView.frame = CGRectMake(100, 100, 200, 130);
// [alertView initWithAlertView];
[self.view addSubview:alertView];
__block ViewController *vc = self;
alertView.block = ^(UIColor *color){
vc.view.backgroundColor = color;
};
// [alertView showTwo];要不要都行 看情况而定
}
重写AlertView(用block)的更多相关文章
- 用block响应button的点击事件
		
1.继承UIButton : 2.在自己定义的button类中的方法 addTarget:(id)target action:(SEL)action forControlEvents:(UIContr ...
 - django模板复用 extends,block,include
		
template复用 extends block include render 参考:https://code.ziqiangxuetang.com/django/django-template.ht ...
 - Django模板之模板继承(extends/block)
		
Django模版引擎中最强大也是最复杂的部分就是模版继承了.模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 block. 模板继承: 1. ...
 - Object-c Associated Object
		
oc的关联的作用在我看来就是将两个对象关联起来,用的时候通过key和对象把和这个对象关联的对象再取出来(我做的项目就是和UITableView里面的一个属性关联起来了) 举个栗子: - (void)v ...
 - 【读书笔记】--《编写高质量iOS与OS X代码的52个有效方法》
		
1.Objective-C 起源: 在 C 语言基础上添加了面向对象特性,是 C 语言的超集.Objective-C 由 SmallTalk 语言演变过来,使用消息结构,运行环境由运行环境决定. OC ...
 - Django模板的继承
		
一.extend 1.extend继承模板 2.一个文件中只能继承一个模板 3.extend继承模板中的所有内容,模板的内容包括:html的head和body ,eg:
 - Effective Objective-C 2.0 — 第10条:在既有类中使用关联对象存放自定义数据
		
可以通过“关联对象”机制来把两个对象连起来 定义关联对象时可指定内存管理语义,用以模仿定义属性时所采用的“拥有关系”与“非拥有关系” 只有在其他做法不可行时才应选用关联对象,因为这种做法通常会引入难于 ...
 - PHP模版引擎 – Twig
		
在网站开发过程中模版引擎是必不可少的,PHP中用的最多的当属Smarty了.目前公司系统也是用的Smarty,如果要新增一个页面只需把网站的头.尾和左侧公共部分通过Smarty的include方式引入 ...
 - 编写高质量iOS代码与OS X代码的effective 方法小结
		
一.熟悉OC: 了解OC的起源: OC和C++,Java等面向对象语言类似,不过有很方面差别.因为该语言使用 消息结构而非函数调用. 消息结构和函数调用的区别:前者是在其运行时所应执行的代码由运行环 ...
 
随机推荐
- Sass入门:第三章
			
1.声明变量 Sass声明变量以美元符号"$"开头.例如: $width : 300px; 上面的例子中,Sass的变量包括三个部分: (1)声明变量的符号"$" ...
 - memo用法总结
			
添加 mmo1.Lines.add('新加的一行');//追加一行文字 mmo1.Lines.Insert(1,'新插入一行');//在指定位置插入一行 删除 mmo1.Lines.Delete(1) ...
 - MongoDB执行计划分析详解
			
要保证数据库处于高效.稳定的状态,除了良好的硬件基础.高效高可用的数据库架构.贴合业务的数据模型之外,高效的查询语句也是不可少的.那么,如何查看并判断我们的执行计划呢?我们今天就来谈论下MongoDB ...
 - cookie和session的区别(搜狐笔试考到的一个题目)
			
一.cookie机制和session机制的区别***************************************************************************** ...
 - C++中的向上类型转换和向下类型转换
			
在c++的世界中有这样两个概念,向上类型转换,向下类型转换,分别描述的是子类向基类,和基类向子类的强制类型转换. 向上强制类型转换 切割:覆盖方法和子类数据丢失的现象生成切割(slice) class ...
 - 根据NSString字符串长度自动改变UILabel的frame
			
相信大家都遇到过这种需求.如果一个不慎,容易做成这个模样: 话不多说,上代码. 1.首先,设置UILabel的相关属性 UILabel *tmpLabel = [[UILabel alloc] ini ...
 - 如何用脚本快速修改IP地址(Netsh)
			
如何用脚本快速修改IP地址(Netsh) 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了.最近一个项目经常要切换ip,所以我写了两个脚本:c:\116.bat netsh interfa ...
 - oracle日期的处理
			
字符长转换为日期,有两种写法 SELECT date'2016-06-03' FROM dualselect to_date('2016-06-03','yyyy-mm-dd') from dual ...
 - uploadifive源码学习
			
一.简介 Uploadify是一个基于JQuery的多文件上传JS组件,高度定制,两个版本可供选择.flash版本在最新的Safari等不再支持flash的浏览器或者一些手机浏览器中就无法正常的加载使 ...
 - C中内存分配方式[转载]
			
在C 中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 一.简介: 1.栈,就是那些由编译器在需要的时候分配,在无需的时候自动清除的变量的存储区.里面的变量通常是局部变 ...