IOS 仿自带计算器

ViewController.h


#import


@interface ViewController : UIViewController{

    UIButton * btn;

    UILabel *label;

    UIButton *btn0;

    UIButton *btndian;

    int btn_width,btn_height;

    int what;

}


@property(retain,nonatomic) NSMutableString *mString;

@property(retain,nonatomic) NSString *string;

@property(assign,nonatomic) double num1,num2;



@end


ViewController.m


#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    CGRect rx = [ UIScreen mainScreen ].bounds;

    btn_height = 100;

    btn_width = rx.size.width/4+1;

    what = -1;

    

    label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, rx.size.width, rx.size.height-5*btn_height)];

    label.backgroundColor = [UIColor blackColor];

    label.textColor = [UIColor whiteColor];

    label.text = @"";

    label.font = [UIFont fontWithName:@"Times new Roman" size:50];

    label.adjustsFontSizeToFitWidth = YES;

    label.textAlignment = UITextAlignmentRight; //字体居右

    [self.view addSubview:label];

    

    NSArray *array1=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil];

    int n=0;

    for (int i=0; i<3; i++)

    {

        for (int j=0; j<3; j++)

        {

            btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];

            btn.frame=CGRectMake(btn_width*j, rx.size.height-btn_height*(4-i), btn_width, btn_height);

            btn.backgroundColor = [UIColor colorWithRed:196/255.0 green:200 /255.0 blue:201/255.0 alpha:1];

            btn.font = [UIFont fontWithName:@"STHeitiJ-Light" size:50];

            

            [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

            btn.layer.borderWidth = 0.6;

            [btn.layer setBorderColor:[UIColor grayColor].CGColor];


            [btn setTitle:[array1 objectAtIndex:n++] forState:UIControlStateNormal];   //注意:[array objectAtIndex:n++]

            [self.view addSubview:btn];

            [btn addTarget:self action:@selector(shuzi:) forControlEvents:UIControlEventTouchUpInside]; //addTarget:self 的意思是说,这个方法在本类中也可以传入其他类的指针

        }

    }

    n = 0;

    NSArray *array2=[NSArray arrayWithObjects:@"/",@"*",@"-",@"+", @"=",nil];

    for (int i=0; i<5; i++)

    {

        

        btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];

        btn.frame=CGRectMake(btn_width*3, rx.size.height-btn_height*(5-i), btn_width, btn_height);

        btn.font = [UIFont fontWithName:@"STHeitiJ-Light" size:50];

        

        [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

        btn.layer.borderWidth = 0.6;

        [btn.layer setBorderColor:[UIColor grayColor].CGColor];

        btn.backgroundColor = [UIColor colorWithRed:249/255.0 green:136 /255.0 blue:16/255.0 alpha:1];

        [btn setTitle:[array2 objectAtIndex:n++] forState:UIControlStateNormal];   //注意:[array objectAtIndex:n++]

        [self.view addSubview:btn];

        [btn addTarget:self action:@selector(cacula:) forControlEvents:UIControlEventTouchUpInside];

        

    }

    btn0 = [[UIButton alloc]initWithFrame:CGRectMake(0, rx.size.height-btn_height, 2*btn_width, btn_height)];

    [btn0 setTitle:@"0" forState:UIControlStateNormal];

    btn0.backgroundColor = [UIColor colorWithRed:196/255.0 green:200 /255.0 blue:201/255.0 alpha:1];

    btn0.font = [UIFont fontWithName:@"STHeitiJ-Light" size:50];

    

    [btn0 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

    btn0.layer.borderWidth = 0.6;

    [btn0.layer setBorderColor:[UIColor grayColor].CGColor];

    [self.view addSubview:btn0];

    [btn0 addTarget:self action:@selector(shuzi:) forControlEvents:UIControlEventTouchUpInside];

    

    btndian = [[UIButton alloc]initWithFrame:CGRectMake(2*btn_width, rx.size.height-btn_height, btn_width, btn_height)];

    [btndian setTitle:@"." forState:UIControlStateNormal];

    btndian.backgroundColor = [UIColor colorWithRed:196/255.0 green:200 /255.0 blue:201/255.0 alpha:1];

    btndian.font = [UIFont fontWithName:@"STHeitiJ-Light" size:50];

    

    [btndian setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

    btndian.layer.borderWidth = 0.6;

    [btndian.layer setBorderColor:[UIColor grayColor].CGColor];

    [self.view addSubview:btndian];

    [btndian addTarget:self action:@selector(shuzi:) forControlEvents:UIControlEventTouchUpInside];

    

    n = 0;

    NSArray *array3=[NSArray arrayWithObjects:@"AC",@"+/-",@"%",nil];

    for (int i=0; i<3; i++)

    {

        

        btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];

        btn.frame=CGRectMake(btn_width*i, rx.size.height-btn_height*5, btn_width, btn_height);

        btn.backgroundColor = [UIColor colorWithRed:198/255.0 green:202 /255.0 blue:203/255.0 alpha:1];

        btn.font = [UIFont fontWithName:@"STHeitiJ-Light" size:30];

        

        [btn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];

        btn.layer.borderWidth = 0.6;

        [btn.layer setBorderColor:[UIColor grayColor].CGColor];

        [btn setTitle:[array3 objectAtIndex:n++] forState:UIControlStateNormal];   //注意:[array objectAtIndex:n++]

        [self.view addSubview:btn];

        [btn addTarget:self action:@selector(qita:) forControlEvents:UIControlEventTouchUpInside];

        

    }

}

- (void)qita:(id)sender{

    if([[sender currentTitle] isEqualToString:@"AC"]){

        what = -1;

        [label setText:@""];

    }

    if([[sender currentTitle] isEqualToString:@"%"]){

        if(what == -1){

            self.num1 = self.num1/100;

            [label setText:[NSString stringWithFormat:@"%.2f",self.num1]];

        }

        else if(what>0 && what<=4){

            self.num2 = self.num2/100;

            [label setText:[NSString stringWithFormat:@"%.2f",self.num2]];

        }else if(what == 5){

            self.num1 = self.num2/100;

            [label setText:[NSString stringWithFormat:@"%.2f",self.num1]];

            what = -1;

        }

        

    }

    if([[sender currentTitle] isEqualToString:@"+/-"]){

        self.string = [[NSString alloc]init];

        if([[label text] rangeOfString:@"-"].location!=NSNotFound){

            self.string = [[label text] substringFromIndex:1];

            [label setText:self.string];

        }

        else{

            self.string = [@"-" stringByAppendingString:[label text]];

            [label setText:self.string];

        }

        if(what == -1){

            self.num1=[label.text doubleValue];               //保存输入的数值

            NSLog(@"self.num1  is  %f",self.num1);

        }

        else if(what >0 && what<=4){

            self.num2=[label.text doubleValue];               //保存输入的数值

            NSLog(@"self.num2  is  %f",self.num2);

        }

    }


}

- (void)cacula:(id)sender{

    double answer = 0;

    if([[sender currentTitle] isEqualToString: @"+"]){

        if(what == 5){

            self.num1 = self.num2;

        }

        what = 1;

        [label setText:@""];

    }

    if([[sender currentTitle] isEqualToString: @"-"]){

        if(what == 5){

            self.num1 = self.num2;

        }

        what = 2;

        [label setText:@""];

    }

    if([[sender currentTitle] isEqualToString: @"*"]){

        if(what == 5){

            self.num1 = self.num2;

        }

        what = 3;

        [label setText:@""];

    }

    if([[sender currentTitle] isEqualToString: @"/"]){

        if(what == 5){

            self.num1 = self.num2;

        }

        what = 4;

        [label setText:@""];

    }

    if([[sender currentTitle] isEqualToString: @"="]){

        if(what == 1){

            answer = self.num1+self.num2;

        }

        else if(what == 2){

            answer = self.num1-self.num2;

        }

        else if(what == 3){

            answer = self.num1*self.num2;

        }

        else if(what == 4){

            answer = self.num1/self.num2;

        }else {

            answer = self.num1;

        }


        [label setText:[NSString stringWithFormat:@"%.2f",answer]];

        self.num2 = answer;

        what = 5;

    }

}

//0-9方法

- (void)shuzi:(id)sender

{

    if(what==5){

        [label setText:@""];

        what = -1;

    }

    self.string = [[NSString alloc]init];

    self.string = [[label text] stringByAppendingString:[sender currentTitle]];

    [label setText:self.string];

    

    if(what == -1){

        self.num1=[label.text doubleValue];               //保存输入的数值

        NSLog(@"self.num1  is  %f",self.num1);

    }

    else if(what >0 && what<=4){

        self.num2=[label.text doubleValue];               //保存输入的数值

        NSLog(@"self.num2  is  %f",self.num2);

    }

    

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end



你可能感兴趣的:(iOS)