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