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

直接上源码

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








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值