在iOS中调限,鏈?zhǔn)骄幊屉m然用的不太多,但是误澳,在特定的應(yīng)用環(huán)境下耻矮,利用block實(shí)現(xiàn)鏈?zhǔn)骄幊痰脑挘瑫?huì)大大的提高編程效率忆谓,并且代碼直觀易讀裆装。
初次接觸鏈?zhǔn)骄幊淌窃贛asonry中,不得不承認(rèn)那種寫(xiě)法看起來(lái)十分直觀倡缠,調(diào)用起來(lái)也很簡(jiǎn)單哨免。
下邊我會(huì)用一個(gè)例子來(lái)對(duì)比一下日常編程方式和鏈?zhǔn)骄幊獭?/p>
/**
* 日常編程方式
*/
#import <UIKit/UIKit.h>
@interface CustomView : UIView
// 設(shè)置View的大小及位置
- (void)setViewFrame:(CGRect)frame;
// 設(shè)置View的顏色
- (void)setViewColor:(UIColor *)color;
@end
實(shí)現(xiàn):
- (void)setViewFrame:(CGRect)frame {
self.frame = frame;
}
- (void)setViewColor:(UIColor *)color {
self.backgroundColor = color;
}
調(diào)用:
- (void)viewOption {
CustomView *customView = [[CustomView alloc] init];
[customView setViewFrame:CGRectMake(165, 300, 100, 100)];
[customView setViewColor:[UIColor cyanColor]];
[self.view addSubview:customView];
}
實(shí)現(xiàn)效果:
實(shí)現(xiàn)效果
下面,我們使用鏈?zhǔn)骄幊虒?shí)現(xiàn)
#import <UIKit/UIKit.h>
@interface CustomView : UIView
/**
* 設(shè)置View的大小及位置
*/
- (CustomView *(^)(CGRect))viewFrame;
/**
* 設(shè)置View的顏色
*/
- (CustomView *(^)(UIColor *))ViewColor;
/**
* 仿造Masonry
*
* @param block 對(duì)View的處理
*
* @return UIView
*/
+ (UIView *) makeCustomView:(void (^)(CustomView *))block;
@end
實(shí)現(xiàn):
- (CustomView *(^)(CGRect))viewFrame {
return ^CustomView *(CGRect frame) {
self.frame = frame;
return self;
};
}
- (CustomView *(^)(UIColor *))ViewColor {
return ^CustomView *(UIColor *color) {
self.backgroundColor = color;
return self;
};
}
+ (UIView *)makeCustomView:(void (^)(CustomView *))block {
CustomView *view = [[CustomView alloc] init];
block(view);
return view;
}
調(diào)用:
- (void)viewOption {
UIView *customView = [CustomView makeCustomView:^(CustomView *custom) {
custom.viewFrame(CGRectMake(165, 300, 100, 100)).ViewColor([UIColor cyanColor]);
}];
[self.view addSubview:customView];
}
最后結(jié)果和日常書(shū)寫(xiě)方式實(shí)現(xiàn)相同昙沦,但是在調(diào)用上更加清晰直觀琢唾。
ben li