刚刚进入ios开发行业,发现开发中要用到大量的block回调,由此可见它的重要性。学习它之前我也是网上找的资料,推荐这篇文章http://blog.csdn.net/mobanchengshuang/article/details/11751671,我也是从这里得到一点启示。假设对block的使用还不熟悉建议先看我的block那篇文章。以下我用自己的project来解释一下block回调函数。

一、先创建一个简单的xcodeproject

ViewController.h文件

//

//  ViewController.h

//  block回调

//

//  Created by pengxun523 on 14-4-16.

//  Copyright (c) 2014年 pengxun523. All rights reserved.

//

#import <UIKit/UIKit.h>

@interface ViewController :
UIViewController

@property (weak,
nonatomic) IBOutlet
UIButton *btnOutlet;

- (IBAction)btnClick:(UIButton *)sender;

@end

#import "ViewController.h"

#import "ShowBtnColor.h"

@interface
ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad

{

[super
viewDidLoad];

}

-(void)chargeMyIphone:(void(^)(void))finishBlock

{

}

- (void)didReceiveMemoryWarning

{

[super
didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

- (IBAction)btnClick:(UIButton *)sender

{

CGRect temp =
CGRectMake(_btnOutlet.frame.origin.x,
_btnOutlet.frame.origin.y,
,
);

[ShowBtnColor
ChangeRootViewBtnRect:temp blockcompletion:^(UIColor *colorEnum) {

/*函数回调
当block运行时就会回到这里*/

_btnOutlet.backgroundColor = colorEnum;

}];

}

@end


ShowBtnColor.h文件

//

//  ShowBtnColor.h

//  block回调

//

//  Created by pengxun523 on 14-4-22.

//  Copyright (c) 2014年 pengxun523. All rights reserved.

//

#import <Foundation/Foundation.h>

typedef
void (^Changcolor)(UIColor *colorEnum);
//定义一个block返回值void參数为颜色值

@interface ShowBtnColor :
NSObject

//回调函数改变btn的颜色值

+ (void)ChangeRootViewBtnRect:(CGRect)rect blockcompletion:(Changcolor)Changcolorblock;

@end


//

//  ShowBtnColor.m

//  block回调

//

//  Created by pengxun523 on 14-4-22.

//  Copyright (c) 2014年 pengxun523. All rights reserved.

//

#import "ShowBtnColor.h"

@implementation ShowBtnColor

+ (void)ChangeRootViewBtnRect:(CGRect)rect blockcompletion:(Changcolor)Changcolorblock

{

UIColor *temp = [UIColor
greenColor];

Changcolorblock(temp);
//运行block

}

@end

执行结果

 当点击button时 

iOS很重要的 block回调的更多相关文章

  1. iOS开发-Block回调

    关于Block之前有一篇文章已经写过一篇文章Object-C-代码块Block回顾,不过写的比较浅显,不能体现出Block在实际开发中的重要性,关于Block的基础知识,可以参考之前的博客.在实际开发 ...

  2. iOS 键盘添加完成按钮,delegate和block回调

    这个是一个比较初级一点的文章,新人可以看看.当然实现这个需求的时候自己也有一点收获,记下来吧. 前两天产品要求在工程的所有数字键盘弹出时,上面带一个小帽子,上面安装一个“完成”按钮,这个完成按钮也没有 ...

  3. iOS学习笔记之Block

    写在前面 学习iOS开发的过程中,在很多场合都遇到了Block.说实话,虽然自己依葫芦画瓢的将Block"拿来"用着,但这种"拿来主义"与学习时应持有的探索精神 ...

  4. ios很好的开源库

    Tim9Liu9/TimLiu-iOS 自己总结的iOS.mac开源项目及库,持续更新.. 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD ...

  5. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

    iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)   使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: ...

  6. 原 iOS深入学习(Block全面分析)http://my.oschina.net/leejan97/blog/268536

    原 iOS深入学习(Block全面分析) 发表于1年前(2014-05-24 16:45)   阅读(26949) | 评论(14) 39人收藏此文章, 我要收藏 赞21 12月12日北京OSC源创会 ...

  7. 代码块(Block)回调一般阐述

    本章教程主要对代码块回调模式进行讲解,已经分析其他回调的各种优缺点和适合的使用场景. 代码块机制 Block变量类型 Block代码封装及调用 Block变量对普通变量作用域的影响 Block回调接口 ...

  8. NSTimer_Block封装定时器的target-action成Block回调

    前言 定时器NSTimer虽然简单易用,但是目标响应机制(target-action)这种方式很容易在代码中出现代码臃肿的情况,特别是在一个文件中有大量的代码,多个定时器的时候不方便调试,因此将NST ...

  9. flutter block回调

    block回调在oc中很常见,到了flutter中仍然有block回调 自定义一个StatefulWidget PageTitle 无参数回调VoidCallback VoidCallback onT ...

随机推荐

  1. android.graphics包中的一些类的使用

    游戏编程相关参考 Matrix学习系列: http://www.moandroid.com/?p=1781 Android画图学习总结系列: http://www.moandroid.com/?p=7 ...

  2. C语言字符串操作函数

    1.函数名: stpcpy  功  能: 拷贝一个字符串到另一个  用  法: char *stpcpy(char *destin, char *source);  程序例: #include < ...

  3. MySQL 通配符学习总结

    MySQL 通配符 SQL您同意使用模式匹配"_"无论单个字符相匹配,和"%"匹配随意数目字符(包含零个字符). 在 MySQL中.SQL的模式缺省是忽略大写和 ...

  4. Mysql主键索引、唯一索引、普通索引、全文索引、组合索引的区别

    原文:Mysql主键索引.唯一索引.普通索引.全文索引.组合索引的区别 Mysql索引概念: 说说Mysql索引,看到一个很少比如:索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不 ...

  5. ZOJ3805:Machine

    In a typical assembly line, machines are connected one by one. The first machine's output product wi ...

  6. JavaScript 中的继承(读书笔记思维导图)

    继承是 OO 语言中的一个最为人津津乐道的概念.许多 OO 语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.由于函数没有签名,在 ECMAScript ...

  7. 1T文件夹 - 微云

    1T文件夹 - 微云 1T文件夹

  8. graph driver-device mapper-02driver基本操作

    // 清除thin pool 1.1 func (d *Driver) Cleanup() error { // 停止thin pool err := d.DeviceSet.Shutdown() r ...

  9. 做SEO所要具备的四种能力

    1,不为失败找借口         既然我们选择了做SEO,那么发生网站被降权.被K是常常的事.当这样的情况发生时,大部分站长首先将责任推给百度机制,由于百度更新算法调整遭降权,不是由于他们的优化没有 ...

  10. 墙体裂缝推荐的情况下驱动的PhoneGap入门,早看早收据

    清华大学出版社推出<构建跨平台APP:PhoneGap移动应用实战> 零门槛的学习APP发展 刮 进步 20以上示范样本APP 3项目APP 台à跨终端à移动开发 完美生命周期:搭建好开发 ...