iOS开发封装带有Button的UIView控件,使用block给button添加点击事件

来源:互联网 发布:php include path 编辑:程序博客网 时间:2024/05/01 02:01

封装的BaseView的.h文件

#import <UIKit/UIKit.h>typedef void (^ButtonBlock) (id sender);@interface BaseView : UIView- (void)addButtonAction:(ButtonBlock)block;@end

封装的BaseView的.m文件

#import "BaseView.h"@interface BaseView ()@property (nonatomic, strong, nullable) ButtonBlock block;@property (nonatomic, strong, nullable) UIButton *button;@end@implementation BaseView- (instancetype)initWithFrame:(CGRect)frame {    self = [super initWithFrame:frame];    if (self) {        self.button = [UIButton buttonWithType:(UIButtonTypeCustom)];        self.button.frame = CGRectMake(0, 0, 100, 100);        self.button.backgroundColor = [UIColor blackColor];        [self addSubview:self.button];        [self.button addTarget:self action:@selector(buttonAction) forControlEvents:(UIControlEventTouchUpInside)];    }    return self;}//实现block回调的方法- (void)addButtonAction:(ButtonBlock)block {    self.block = block;}- (void)buttonAction {    if (self.block) {        self.block(self);    }}@end

在viewController中使用BaseView

#import "ViewController.h"#import "BaseView.h"@interface ViewController ()@property (nonatomic, strong, nullable) BaseView *baseView;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        self.baseView = [[BaseView alloc] init];    self.baseView.frame = self.view.frame;    [self.view addSubview:self.baseView];    [self.baseView addButtonAction:^(id sender) {        NSLog(@"呵呵呵");    }];}@end

看看是不是点击button就能打印“呵呵呵”了呢

2 0
原创粉丝点击