您的位置:首页 > 其它

block回调的一个小例子

2015-10-11 19:16 351 查看
博主刚刚进入ios开发行业不是太久,发现开发中要用到大量的block回调,由此可见它的重要性。如果对block的使用还不熟悉建议先看我的bloc这篇文章。我用自己的工程来解释一下block回调函数。

1.创建工程,并添加一个showBtnColor类

2.如下图:添加代码

3.当点击button 时,block回调函数,button 的背景色改变

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

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

@end

#import "ViewController.h"
#import "showBtnColor.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)btnClick:(id)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

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedef void (^Changcolor)(UIColor *colorEnum);

@interface showBtnColor : NSObject

//回调函数改变btn的颜色值
+ (void)ChangeRootViewBtnRect:(CGRect)rect blockcompletion:(Changcolor)block;

@end

//  Copyright (c) 2015年  黄帅. All rights reserved.
//

#import "showBtnColor.h"

@implementation showBtnColor
+ (void)ChangeRootViewBtnRect:(CGRect)rect blockcompletion:(Changcolor)block{
UIColor *temp = [UIColor greenColor];
block(temp);//执行block
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: