iOS非常重要的 block回调

转载 2015年11月19日 09:13:14

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

一、先创建一个简单的xcode工程


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 (weaknonatomicIBOutlet 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:tempblockcompletion:^(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

运行结果

 当点击按钮时 


相关文章推荐

IOS block回调代码实例Demo

  • 2014-02-28 16:22
  • 58KB
  • 下载

z-index的一个非常重要的细节

 JavaScript教程网今天跟大家讨论一个z-index的问题,z-index的一个非常重要的细节,首先请明确,无论哪一个浏览器下面,z-index的元素要带有position(relati...

数据可视化性能 – 为什么非常重要?

性能本身是对机器,产品等工作有多好的描述。在数据可视化领域里,性能意味着有多快速度,功能有多强大及使用方便程度。可视化性能的技术和技能协助开发人员,数据分析师和科学家节省大量的时间,精力和资源效率,因...

java中非常重要的修饰词---static、this、final、super

this this总的来说表示指向当前对象的指针。 /** * * @ClassName: Test * @Description: this example * @author:...

多线程(四)同步--非常重要

同步非常非常重要,我们在处理多线程问题时,基本上都要使用Synchronized关键字。 因此必须重点理解。   首先,多线程会出现问题的根本原因是数据共享。 Threads communic...
  • OnlyQi
  • OnlyQi
  • 2011-04-28 17:17
  • 1594

五个非常重要的移动Web内容适应设计理念

英文原文:Mobile web content adaptation techniques   译者:赵建光   如果你要构建移动网站,那么本文可以帮你选择合适的技术方案。本文并没有具体描述如何去...

java基础,但非常重要的.引用传递和值传递见解

之前没有写过博客,因为一直觉得没什么好写的.

linux中的两个非常重要的信号:SIGALRM信号和SIGCHID信号

linux中的两个非常重要的信号:SIGALRM信号和SIGCHID信号 - 推酷 http://www.tuicool.com/articles/3E7FBj

linux中的两个非常重要的信号:SIGALRM信号和SIGCHID信号

linux中的两个非常重要的信号:SIGALRM信号和SIGCHID信号

STM32F4如何设置系统时钟,非常重要

STM32F4的系统时钟非常重要,涉及到整个系统的运行结果,无论是什么操作,都需要时钟信号,不同型号的微控制器的默认系统时钟配置是不同的,这里,给出两种配置STM32F407系统时钟的方法。 方法一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)