iOS开发封装带有Button的UIView控件,使用target-action模式给button添加点击事件
2016-05-12 22:48
645 查看
封装的BaseView的.h文件
封装的BaseView的.m文件
在viewController中使用BaseView
#import <UIKit/UIKit.h> @interface BaseView : UIView -(void)addTarget:target action:(SEL)action; @end
封装的BaseView的.m文件
#import "BaseView.h" @interface BaseView () @property (nonatomic, strong, nullable) UIButton *button; @property (nonatomic, weak) id target; @property (nonatomic, assign) SEL action; @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; } - (void)buttonAction { // 执行action [self.target performSelector:self.action withObject:self afterDelay:0]; } // target-action回调 - (void)addTarget:(id)target action:(SEL)action { self.target = target; self.action = action; }
在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 addTarget:self action:@selector(buttonAction)]; } - (void)buttonAction { NSLog(@"呵呵呵"); } @end
相关文章推荐
- 129.Longest Consecutive Sequence
- iOS开发封装带有Button的UIView控件,使用代理给button添加点击事件
- deep learning---利用caffe在vgg-face上finetuing自己的人脸数据
- mui图片预览
- weblogic 下异常 org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
- 62. Unique Paths
- leetcode_347 Top K Frequent Elements
- Guid的使用
- iOS开发封装带有Button的UIView控件,使用block给button添加点击事件
- String StringBuffer与StringBuilder的区别
- Java 设计模式-建造者模式(Builder)Android讲解
- POJ 3061 - Subsequence
- StringBuilder的使用
- ugui 添加事件的几种方式
- Guid的使用
- StringBuilder的使用
- layer.layui.com 一个不错的弹窗层js插件库
- UIscrollView
- 1711 Number Sequence(kmp)
- Android的线程使用来更新UI------Thread Handler Looper TimerTask等