刚刚进入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. Ural 1073 Square Country (DP)

    题目地址:Ural 1073 DP水题.也能够说是背包. #include <iostream> #include <cstdio> #include <string&g ...

  2. net析构函数对垃圾回收的影响

    net析构函数对垃圾回收的影响 之前忘了说了 代码都是在Release模式下运行的,现在补充上. 这里说析构函数,其实并不准确,应该叫Finalize函数,Finalize函数形式上和c++的析构函数 ...

  3. Mysql 和Oracle rows 区别

    mysql> explain select t1.* from t2 ,t1 where t2.id=t1.id and t2.id<3;\ +----+-------------+--- ...

  4. C++ operator overload -- 操作符重载

    C++ operator overload -- 操作符重载 2011-12-13 14:18:29 分类: C/C++ 操作符重载有两种方式,一是以成员函数方式重载,另一种是全局函数. 先看例子 # ...

  5. android百度地图打包混淆 用不了No such file or directory (2) com.baidu.mapapi.BMapManager.init(Unknown Source)

    调用了百度地图地图开发包是baidumapapi_v2_1_1.jar,定位SDK版本是locSDK_3.3.jar 调试的时候能运行!可是打包签名后就运行不了! baidu  google 了好久! ...

  6. 窗体的Alpha通道透明色支持(一旦 Form 被定义为利用 LayeredWindow ,窗口的绘图不再响应沿用多年的 WM_Paint 消息)

    参考: http://www.delphibbs.com/delphibbs/dispq.asp?lid=2190768 Windows 2000后,为了支持类似MAC界面的Alpha通道混合效果,提 ...

  7. 玩转Windows服务系列——命令行管理Windows服务

    原文:玩转Windows服务系列——命令行管理Windows服务 说到Windows服务的管理就不得不说通过命令行的方式管理Windows服务,因为无论是系统管理员,还是通过编程的方式调用cmd命令, ...

  8. Mysql 导入导出数据结构及数据

    方式一: mysqldump -ukevin -P3306 --default-character-set=utf8 -p -h10.1.15.123 activity sign_in_user &g ...

  9. 让你提前知道软件开发(22):shell脚本文件操作

    文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...

  10. 最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)(转)

    一,问题描述 在英文单词表中,有一些单词非常相似,它们可以通过只变换一个字符而得到另一个单词.比如:hive-->five:wine-->line:line-->nine:nine- ...