工厂模式的block回调(使用简单方便)

来源:互联网 发布:速写练线稿软件 编辑:程序博客网 时间:2024/05/20 07:16

直接上源码

#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);








1 0
原创粉丝点击