直接上源码
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface UITool : NSObject
+(UIButton*)buttonIn:(UIView*)view withTitle:(NSString *)title titleColor:(UIColor*)titleColor fontSize:(int)fontSize imageName:(NSString*)imageName backColor:(UIColor*)backColor clicked:(void(^)(void))clicked;
@end
#import "UITool.h"
typedef void(^ButtonBlock)(void);//定义了一个ButtonBlock类型
static ButtonBlock buttonClickedBlock;//声明了一个ButtonBlock类型名叫buttonClickedBlock的变量
@implementation UITool
+(UIButton*)buttonIn:(UIView*)view withTitle:(NSString *)title titleColor:(UIColor*)titleColor fontSize:(int)fontSize imageName:(NSString*)imageName backColor:(UIColor*)backColor clicked:(void(^)(void))clicked{
buttonClickedBlock =clicked;
UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
[view addSubview:button];
[button setTitle:title forState:UIControlStateNormal];
[button setTitleColor:titleColor forState:UIControlStateNormal];
button.titleLabel.font=[UIFont systemFontOfSize:fontSize];
[button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
button.backgroundColor=backColor;
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
return button;
}
+ (void)buttonClicked:(UIButton*)sender{
buttonClickedBlock();
}
@end
使用:
UIButton *loginButton2=[UITool buttonIn:self.view withTitle:@"登录2" titleColor:[UIColor blueColor] fontSize:15 imageName:@"" backColor:[UIColor orangeColor] clicked:^{
NSLog(@"loginButton2 block");
}];
loginButton2.frame=CGRectMake(100, 500, 175, 30);