我们应该建立自己的代码库,建立自己的工厂

苹果公司给我们提供了强大的利器 

可是我们不应该以简简单单的实现基本功能就满足了 

大牛的成长之路。都是自己慢慢深入研究 

我们要有成长为大牛的目标 

今天给大家写个自己定义button 对于刚開始学习的人来说非常重要 

我们要理解苹果公司提供的类库 

我们写的程序应该尽量贴近原生 

这样我们的程序才会更易理解 效率等方便也会有所提高 

上代码了:代码不长,可是是一种思想 要好好理解 

//
//  MyButton.h
//  自己定义Button

#import <UIKit/UIKit.h>

@interface MyButton : UIControl

/**
 *  自己定义的返回自己的类型
 *
 *  @param title    <#title description#>
 *  @param frame    <#frame description#>
 *  @param target   <#target description#>
 *  @param selector <#selector description#>
 *
 *  @return <#return value description#>
 */

+(MyButton *)createButtonWithTitle:(NSString *)title andFrame:(CGRect)frame andTarget:(id)target andSelector:(SEL)selector;

@end

//
//  MyButton.m
//  自己定义Button
//

#import "MyButton.h"

@implementation MyButton



+(MyButton *)createButtonWithTitle:(NSString *)title andFrame:(CGRect)frame andTarget:(id)target andSelector:(SEL)selector
{
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    //UIButton *btn = [[UIButton alloc]init];
    btn.frame = frame;
    
    btn.layer.cornerRadius =10.0f;
    
    btn.layer.masksToBounds = YES;
    
    btn.layer.borderWidth = 2.0;
    
    btn.backgroundColor = [UIColor colorWithRed:0.18f green:0.64f blue:0.87f alpha:1.00f];
    [btn setTitle:title forState:UIControlStateNormal];
    
    [btn addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
    
    return btn;
}
@end

//
//  ViewController.h
//  自己定义Button


#import <UIKit/UIKit.h>

@interface ViewController : UIViewController


@end

//
//  ViewController.m
//  自己定义Button
//


#import "ViewController.h"
#import "MyButton.h"


@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    MyButton *btn = [MyButton createButtonWithTitle:@"Happy" andFrame:CGRectMake(10, 30, 100, 50) andTarget:self andSelector:@selector(btnClick)];
    
    self.view.backgroundColor = [UIColor orangeColor];
    
    [self.view addSubview:btn];
    // Do any additional setup after loading the view, typically from a nib.
}

-(void)btnClick
{
    NSLog(@"button被点击了!");
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end