OC中使用UI自己定义控件实现计算器的设计(版本号1简单的加减乘除,连加,连减,连除,连乘)

OC中使用UI自己定义控件实现计算器的设计(版本号1简单的加减乘除,连加。连减,连除,连乘)
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIApplicationDelegate>

{
    float _operator1;
    float _operator2;
    float _result;
}
@end
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UITextField * textFied1 = [[UITextField alloc]initWithFrame:CGRectMake(10, 30, 300 ,50)];
    textFied1.borderStyle = UITextBorderStyleLine;
    textFied1.backgroundColor = [UIColor redColor];
    [self.view addSubview:textFied1];
    textFied1.clearButtonMode = UITextFieldViewModeAlways;
    textFied1.tag = 007;
    
    
    
    UIButton * btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn1.Frame=CGRectMake(10, 90, 70, 70);
    btn1.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn1];
    [btn1 setTitle:@"7" forState:UIControlStateNormal];
    
    [btn1 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    btn1.tag = 7;
    
  
    UIButton * btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn2.Frame=CGRectMake(85, 90, 70, 70);
    btn2.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn2];
    [btn2 setTitle:@"8" forState:UIControlStateNormal];
    btn2.tag = 8;
    
    [btn2 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    
    UIButton * btn3 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn3.Frame=CGRectMake(160, 90, 70, 70);
    btn3.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn3];
    [btn3 setTitle:@"9" forState:UIControlStateNormal];
    btn3.tag = 9;
    
   [btn3 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn4 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn4.Frame=CGRectMake(235, 90, 70, 70);
    btn4.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn4];
    [btn4 setTitle:@"/" forState:UIControlStateNormal];
    btn4.tag = 13;
    
   [btn4 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn5 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn5.Frame=CGRectMake(10, 165, 70, 70);
    btn5.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn5];
    [btn5 setTitle:@"4" forState:UIControlStateNormal];
    btn5.tag = 4;
    
    [btn5 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn6 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn6.Frame=CGRectMake(85, 165, 70, 70);
    btn6.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn6];
    [btn6 setTitle:@"5" forState:UIControlStateNormal];
    btn6.tag = 5;
    [btn6 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    
    UIButton * btn7 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn7.Frame=CGRectMake(160, 165, 70, 70);
    btn7.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn7];
     [btn7 setTitle:@"6" forState:UIControlStateNormal];
    btn7.tag = 6;
   [btn7 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    
    UIButton * btn8 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn8.Frame=CGRectMake(235, 165, 70, 70);
    btn8.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn8];
     [btn8 setTitle:@"X" forState:UIControlStateNormal];
    btn8.tag = 12;
    [btn8 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn9 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn9.Frame=CGRectMake(10, 240, 70, 70);
    btn9.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn9];
    [btn9 setTitle:@"1" forState:UIControlStateNormal];
    btn9.tag = 1;
     [btn9 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn10 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn10.Frame=CGRectMake(85, 240, 70, 70);
    btn10.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn10];
     [btn10 setTitle:@"2" forState:UIControlStateNormal];
    btn10.tag = 2;
    [btn10 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    
    UIButton * btn11 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn11.Frame=CGRectMake(160, 240, 70, 70);
    btn11.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn11];
     [btn11 setTitle:@"3" forState:UIControlStateNormal];
    btn11.tag = 3;
   [btn11 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    
    UIButton * btn12 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn12.Frame=CGRectMake(235, 240, 70, 70);
    btn12.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn12];
     [btn12 setTitle:@"-" forState:UIControlStateNormal];
    btn12.tag = 11;
   [btn12 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn13 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn13.Frame=CGRectMake(10, 315, 70, 70);
    btn13.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn13];
     [btn13 setTitle:@"0" forState:UIControlStateNormal];
    btn13.tag = 0;
   [btn13 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn14 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn14.Frame=CGRectMake(85, 315, 145, 70);
    btn14.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn14];
     [btn14 setTitle:@"=" forState:UIControlStateNormal];
    btn14.tag = 14;
   [btn14 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    UIButton * btn15 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn15.Frame=CGRectMake(235, 315, 70, 70);
    btn15.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn15];
    [btn15 setTitle:@"+" forState:UIControlStateNormal];
    btn15.tag = 10;
    [btn15 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    
    // Do any additional setup after loading the view, typically from a nib.
}

//enum calCul
//{
//    add,
//    sub,
//    mul,
//    mod
//};
//
//typedef enum calCul calCul;
int count;

-(void)btnClick:(UIButton *)btn
{
    NSString * str = [[NSString alloc]init];
    if (btn.tag == 0) {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"0";
        //_operator1 = 0;
        
        field.text = str;
    }
    else if(btn.tag==1)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"1";
        //_operator2 = 1;
        field.text = str;
    }
    else if(btn.tag==2)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"2";
        field.text = str;
    }
    else if(btn.tag==3)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"3";
        field.text = str;
    }
    else if(btn.tag==4)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"4";
        field.text = str;
    }
    else if(btn.tag==5)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"5";
        field.text = str;
    }
    else if(btn.tag==6)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"6";
        field.text = str;
    }
    else if(btn.tag==7)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"7";
        field.text = str;
    }    else if(btn.tag==8)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"8";
        field.text = str;
    }
    else if(btn.tag==9)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"9";
        field.text = str;
    }
    else if(btn.tag==10)
    {
        count = 1;
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        //str = @"+";
        str = field.text;
        //_result = _operator1;
        _operator1 = [str doubleValue];
        
        //str = [[NSString alloc]initWithFormat:@"%.2f",_result];
        field.text = str;
    }
    else if(btn.tag==11)
    {
        count = 2;
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        //str = @"-";
        //_result = _operator1 + _operator2;
        str = field.text;
        _operator1 = [str doubleValue];
        field.text = str;
    }
    else if(btn.tag==12)
    {
        count = 3;
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        //str = @"*";
        str = field.text;
        _operator1 = [str doubleValue];
        field.text = str;
    }
    else if(btn.tag==13)
    {
        count = 4;
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        //str = @"/";
        str = field.text;
        _operator1 = [str doubleValue];
        field.text = str;
    }
    else if(btn.tag==14)
    {
        UITextField * field = ( UITextField * )[self.view viewWithTag:007];
        str = @"=";
        str = field.text;
        _operator2 = [str doubleValue];
        if (count==1) {
            _result = _operator1 + _operator2;
        }
        else if(count == 2)
        {
        _result = _operator1 - _operator2;
        }
        else if(count == 3)
        {
        _result = _operator1 * _operator2;
        }
        else if(count==4)
        {
        _result = _operator1 / _operator2;
        }
        str = [[NSString alloc]initWithFormat:@"%.6f",_result];
        field.text = str;
    }
    }
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    return YES;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


posted @ 2017-05-23 21:21  claireyuancy  阅读(214)  评论(0编辑  收藏  举报