码迷,mamicode.com
首页 > 其他好文 > 详细

UI —— 计算机(OC)

时间:2015-03-13 11:00:48      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

#import <UIKit/UIKit.h>


@interface MyViewController : UIViewController

{

    NSInteger _firstName;

    NSInteger _calculator; // 数字的计数器

    NSInteger _buttonType; // 计算符号计数器

}


@property (nonatomic, retain) UITextField *inputField;


@end







#import "MyViewController.h"


@interface MyViewController ()


@end


@implementation MyViewController


-(void)dealloc

{

    [_inputField release];

    

    [super dealloc];

}


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    

    //计算器的1 - 10个数字键

    CGRect rect = CGRectMake(40, 0, 50, 30);

    for (int i = 0; i < 10; i++) {

        rect.origin.y += 50;

        NSString *s = [NSString stringWithFormat:@"%d", i];

        UIButton *numButton = [UIButton buttonWithType:UIButtonTypeCustom];

        [numButton setFrame:rect];

        [numButton setBackgroundColor:[UIColor cyanColor]];

        [numButton setTitle:s forState:UIControlStateNormal];

        [self.view addSubview:numButton];

        

        [numButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

    }

    

    CGRect textRect = CGRectMake(130, 50, 80, 30);

    _inputField = [[UITextField alloc] initWithFrame:textRect];

    [_inputField setKeyboardType:UIKeyboardTypeNamePhonePad];

    [_inputField setBackgroundColor:[UIColor grayColor]];

    [self.view addSubview:_inputField];

    [_inputField release];

    

    textRect.size.width = 50;

    textRect.origin.y += 50;

    UIButton *addButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    [addButton setFrame:textRect];

    [addButton setBackgroundColor:[UIColor brownColor]];

    [addButton setTitle:@"=" forState:UIControlStateNormal];

    [self.view addSubview:addButton];

    

    [addButton addTarget:self action:@selector(buttonEqual:) forControlEvents:UIControlEventTouchUpInside];

    

    for (int j = 0; j < 4; j++) {

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

        NSString *symbolString = [symbolArray objectAtIndex:j];

        textRect.origin.y += 50;

        UIButton *symbolButton = [UIButton buttonWithType:UIButtonTypeCustom];

        [symbolButton setFrame:textRect];

        [symbolButton setBackgroundColor:[UIColor greenColor]];

        [symbolButton setTitle:symbolString forState:UIControlStateNormal];

        [self.view addSubview:symbolButton];

        [symbolButton setTag:j];

        

        [symbolButton addTarget:self action:@selector(calculateSymbolButton:) forControlEvents:UIControlEventTouchUpInside];

    }


    textRect.origin.y += 50;

    UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [clearButton setBackgroundColor:[UIColor purpleColor]];

    [clearButton setTitle:@"C" forState:UIControlStateNormal];

    [clearButton setFrame:textRect];

    [self.view addSubview:clearButton];

    

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

}


- (void)buttonClick:(UIButton *)sender

{

    NSString *inputString = nil;

    if (0 == _calculator) {

        inputString = [_inputField.text stringByAppendingString:sender.titleLabel.text];

    }else{

        inputString = sender.titleLabel.text;

    }

    _calculator = 0;

    [_inputField setText:inputString];

}


- (void)calculateSymbolButton:(UIButton *)sender

{

    //此处还有一点小瑕疵,需要在判断一下

    [self buttonEqual:nil];

    _firstName = [_inputField.text integerValue];

    // 保存输入的下一个数的形式

    _calculator = 1;

    // 保存计算类型 + - / *(tag更简单一点)

    _buttonType = sender.tag;

}


- (void)clearButton:(UIButton *)sender

{

    _firstName = 0;

    _calculator = 0;

    _buttonType = 0;

    _inputField.text = @"";

}


- (void)buttonEqual:(UIButton *)sender

{

    NSInteger result;

    switch (_buttonType) {

        case 0:

            result = _firstName + [_inputField.text integerValue];

            break;

            

        case 1:

            result = _firstName - [_inputField.text integerValue];

            break;

            

        case 2:

            result = _firstName * [_inputField.text integerValue];

            break;

            

        case 3:

            result = _firstName / [_inputField.text integerValue];

            break;

            

        default:

            break;

    }

    

    NSString *end = [NSString stringWithFormat:@"%ld", result];

    _inputField.text = end;

    

}



UI —— 计算机(OC)

标签:

原文地址:http://blog.csdn.net/anders_wangw/article/details/44236547

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!