刚刚进入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, _btnOutlet.frame.size.width+50, _btnOutlet.frame.size.height+20);

[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时 

转载于:https://www.cnblogs.com/zfyouxi/p/4275152.html

iOS很重要的 block回调相关推荐

  1. 如何在 iOS 5 中使用 Block

    How To Use Blocks in iOS 5 Tutorial – Part 1 How To Use Blocks in iOS 5 Tutorial – Part 2 本人将示范项目放在了 ...

  2. IOS的OC项目下回调函数的定义以及传参

    IOS的OC项目下回调函数的定义以及传参 1.首先定义一个类方法,通过类名打点调,没有返回值的, +(void) 2. 起个函数名字 +(void)headLineWithSuccess , head ...

  3. ios学习笔记block回调的应用(一个简单的例子)

    一.什么是Blocks       Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从ios4.0开始就很好的支持Block. 二 ...

  4. iOS初级开发笔记:Block回调,实现简单的绑定支付宝逻辑

    绑定支付宝首页和填写资料绑定页之间, 需要在填写页填写好手机号,验证码等,点击确认绑定后跳回到绑定首页.并且绑定按钮变为已绑定按钮,暂未绑定label变为输入的支付宝账号.并且点击已绑定按钮会跳转到解 ...

  5. ios支付宝支付失败不回调_iOS支付宝H5支付无法返回APP解决方案

    本文只讨论你已经成功实现客户端->支付宝支付流程,仅仅是支付完成后无法返回自己的APP的问题. 如果你的支付流程是客户端->Safari->支付宝不在本文讨论范围之类. iOS支付宝 ...

  6. bLock 回调 就是这么简单!

    转载自:http://blog.csdn.net/mobanchengshuang/article/details/11751671 我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数 ...

  7. ios nslog 例子_iOS Block实例

    iOS之Block详解:Block详解 ViewController.h(ARC) #import @interface ViewController : UIViewController // 属性 ...

  8. IOS多线程之Block编程

    1 什么是block iOS SDK 4.0開始,Apple引入了block这一特性.字面上说,block就是一个代码块.可是它的奇妙之处在于在内联(inline)运行的时候(这和C++非常像)还能够 ...

  9. 友盟iOS微信登陆为什么没有回调

    1. 文档中这样说: 7.4 微信登录 添加配置文件参考文档:添加微信及朋友圈,添加相关库文件,配置URL schemes及添加系统回调注意微信登录必须先在微信开放平台申请微信登录权限 在你的程序AP ...

最新文章

  1. 2019年不可错过的45个AI开源工具,你想要的都在这里
  2. 2019年美团,滴滴,蘑菇街Java大数据面经分享!
  3. Linux中error while loading shared libraries错误解决办法
  4. 第一天开始学习使用git中遇到的问题
  5. 委派模式的定义及应用场景
  6. android平台安全支付服务(msp)应用开发接口,Android接入支付宝和微信支付的方法...
  7. Sqlite 数据库出现database disk image is malformed报错的解决方法
  8. 51单片机WIFI模块ESP8266-01s一定要看这个!普中科技给的模块 避免采坑!+CWJAP:3 FAIL 配置不了wifi名称和密码?
  9. Ubuntu安装OpenCV4记录
  10. 网络协议-dhcp报文分析
  11. python实现微信机器人: AI智能回复
  12. 怎样对php手册解除锁定,word锁定怎么解锁
  13. 扫描二维码进小程序指定页面
  14. puppet on windows
  15. Eviews中实现ARIMA模型并进行预测
  16. linux服务器的Gzip文件压缩方法
  17. amd r7 2700u linux,满血双通道R7 2700U?AMD锐龙APU测试
  18. 中国数学的先行者—孙光远先生
  19. 火狐扩展(Firefox Extension)FillForm开发手记(更新中)
  20. 如何翻译截图里的英文

热门文章

  1. scala逻辑运算符的一览图和代码案例
  2. Scala函数柯里化
  3. 解决python多版本环境下pip报错Fatal error in launcher: Unable to create process using问题
  4. vim设置显示行号,vim跳转到文件头,文件尾
  5. Centos7.9禁用密码登录
  6. Qt IFW框架简介
  7. 网络OSI和TCP/IP参考模型
  8. 汉诺塔游戏的python实现——递归函数
  9. 102.怎么学好软件工程?软件工程 = 工具 + 方法 + 过程
  10. 1.3.1 操作系统的运行机制和体系结构(大内核、小内核)