1、创建类别文件Create.h/m
//.h
#import <UIKit/UIKit.h>
@interface UIButton(Create)
+(UIButton*) createButtonWithFrame:(CGRect)frame Target:(id)target Selector:(SEL)selector Image:(NSString*)image ImagePressed:(NSString*)imagePressed;
+(UIButton*) createButtonWithFrame:(CGRect)frame Title:(NSString*)title Target:(id)target Selector:(SEL)selector;
@end
//.m
#import "Create.h"
@implementation UIButton (Create)
+(UIButton*) createButtonWithFrame:(CGRect)frame Target:(id)target Selector:(SEL)selector Image:(NSString*)image ImagePressed:(NSString*)imagePressed;
{
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:frame];
UIImage* newImage = [UIImage imageNamed:image];
[button setBackgroundImage:newImage forState:UIControlStateNormal];
UIImage* newPressdImage = [UIImage imageNamed:imagePressed];
[button setBackgroundImage:newPressdImage forState:UIControlStateHighlighted];
[button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
return button;
}
+(UIButton*) createButtonWithFrame:(CGRect)frame Title:(NSString*)title Target:(id)target Selector:(SEL)selector
{
UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:frame];
[button setTitle:title forState:UIControlStateNormal];
[button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
return button;
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end
2、使用
包含上面创建的头文件
@implementation NBViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:[UIButton createButtonWithFrame:CGRectMake(0, 0, 160, 280) Title:@"测试" Target:self Selector:@selector(buttonPressed:)]];
[self.view addSubview:[UIButton createButtonWithFrame:CGRectMake(0, 0, 160, 40) Target:self Selector:@selector(buttonPressed:) Image:@"img0" ImagePressed:@"img2"]];
}
-(void)buttonPressed:(id)sender
{
NSLog(@"点我");
}