@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)的更多相关文章

  1. 用block响应button的点击事件

    1.继承UIButton : 2.在自己定义的button类中的方法 addTarget:(id)target action:(SEL)action forControlEvents:(UIContr ...

  2. django模板复用 extends,block,include

    template复用 extends block include render 参考:https://code.ziqiangxuetang.com/django/django-template.ht ...

  3. Django模板之模板继承(extends/block)

    Django模版引擎中最强大也是最复杂的部分就是模版继承了.模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 block. 模板继承: 1.    ...

  4. Object-c Associated Object

    oc的关联的作用在我看来就是将两个对象关联起来,用的时候通过key和对象把和这个对象关联的对象再取出来(我做的项目就是和UITableView里面的一个属性关联起来了) 举个栗子: - (void)v ...

  5. 【读书笔记】--《编写高质量iOS与OS X代码的52个有效方法》

    1.Objective-C 起源: 在 C 语言基础上添加了面向对象特性,是 C 语言的超集.Objective-C 由 SmallTalk 语言演变过来,使用消息结构,运行环境由运行环境决定. OC ...

  6. Django模板的继承

    一.extend 1.extend继承模板 2.一个文件中只能继承一个模板 3.extend继承模板中的所有内容,模板的内容包括:html的head和body ,eg:

  7. Effective Objective-C 2.0 — 第10条:在既有类中使用关联对象存放自定义数据

    可以通过“关联对象”机制来把两个对象连起来 定义关联对象时可指定内存管理语义,用以模仿定义属性时所采用的“拥有关系”与“非拥有关系” 只有在其他做法不可行时才应选用关联对象,因为这种做法通常会引入难于 ...

  8. PHP模版引擎 – Twig

    在网站开发过程中模版引擎是必不可少的,PHP中用的最多的当属Smarty了.目前公司系统也是用的Smarty,如果要新增一个页面只需把网站的头.尾和左侧公共部分通过Smarty的include方式引入 ...

  9. 编写高质量iOS代码与OS X代码的effective 方法小结

    一.熟悉OC: 了解OC的起源: OC和C++,Java等面向对象语言类似,不过有很方面差别.因为该语言使用  消息结构而非函数调用. 消息结构和函数调用的区别:前者是在其运行时所应执行的代码由运行环 ...

随机推荐

  1. 第四十七节,random 随机数模块

    random 随机数模块格式: import random 引入随机模块文件 random.randrange(65,91) 调用随机函数random.randrange(随机数开始范围,随机数结束范 ...

  2. 同一级目录js的引入

  3. Python之线程&进程

    线程: 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. thr ...

  4. openwrt杂记

    /etc/config/wireless是在boot启动时生成的. 代码在/etc/init.d/boot中,如下: /sbin/wifi detect > /tmp/wireless.tmp  ...

  5. css3部分属性兼容性别扭写法(因为很多我就叫他别扭了,希望全面早早支持css3吧)

    /*圆角class,需要设置圆角的元素加上class名称*/ .roundedCorners{ -webkit-border-radius: 10px;/*webkit内核浏览器*/ -moz-bor ...

  6. 修改textField的placeholder的字体和颜色

    textField.placeholder = @"username is in here!"; [textField setValue:[UIColor redColor] fo ...

  7. mysql sql语句大全(转载)

      1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 ...

  8. js自定义的简易滚动条

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. jquery的隐藏

    HTML 代码:<form> <input type="text" name="email" /> <input type=&qu ...

  10. Redis简介二

    一.直接安装     1.Windows版本的Redis下载地址:https://github.com/dmajkic/redis/downloads  ,选择一个你想要下载的版本下载即可~     ...