ios 계산기

29829 단어
오랜만이에요, 오늘 전에 쓴 계산기의 작은 데모 한 편 할게요.
당시에는 아직 UICollectionView를 배우지 않았기 때문에 이 인터페이스는 모두 label과button이 쓴 것이다
아래 위 코드
이것은.h 파일에 적힌
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController{
    UILabel *_label;//   
    int     a;//   tag
    int     b;//    tag
    float     result;//  
    BOOL    flag;//       
}


@end

이것은.파일
  1 #import "ViewController.h"
  2 #define HEIGHT     [[UIScreen mainScreen] bounds].size.height
  3 #define WIDTH      [[UIScreen mainScreen] bounds].size.width
  4 @interface ViewController ()
  5 
  6 @end
  7 
  8 @implementation ViewController
  9 
 10 - (void)viewDidLoad {
 11     [super viewDidLoad];
 12     [self creat];
 13     // Do any additional setup after loading the view, typically from a nib.
 14 }
 15 - (void)creat{
 16     UIImage *num001 = [UIImage imageNamed:@"001.png"];
 17     UIImage *num002 = [UIImage imageNamed:@"002.png"];
 18     UIImage *num101 = [UIImage imageNamed:@"101.png"];
 19     UIImage *num102 = [UIImage imageNamed:@"102.png"];
 20     UIImage *num201 = [UIImage imageNamed:@"201.png"];
 21     UIImage *num202 = [UIImage imageNamed:@"202.png"];
 22     UIImage *num301 = [UIImage imageNamed:@"301.png"];
 23     UIImage *num302 = [UIImage imageNamed:@"302.png"];
 24     UIImage *num401 = [UIImage imageNamed:@"401.png"];
 25     UIImage *num402 = [UIImage imageNamed:@"402.png"];
 26     UIImage *num501 = [UIImage imageNamed:@"501.png"];
 27     UIImage *num502 = [UIImage imageNamed:@"502.png"];
 28     UIImage *num601 = [UIImage imageNamed:@"601.png"];
 29     UIImage *num602 = [UIImage imageNamed:@"602.png"];
 30     UIImage *num701 = [UIImage imageNamed:@"701.png"];
 31     UIImage *num702 = [UIImage imageNamed:@"702.png"];
 32     UIImage *num801 = [UIImage imageNamed:@"801.png"];
 33     UIImage *num802 = [UIImage imageNamed:@"801.png"];
 34     UIImage *num901 = [UIImage imageNamed:@"901.png"];
 35     UIImage *num902 = [UIImage imageNamed:@"902.png"];
 36     
 37     
 38     UIImage *calj01 = [UIImage imageNamed:@"j01.png"];
 39     UIImage *calj02 = [UIImage imageNamed:@"j02.png"];
 40     UIImage *caljj01 = [UIImage imageNamed:@"jj01.png"];
 41     UIImage *caljj02 = [UIImage imageNamed:@"jj02.png"];
 42     UIImage *calc01 = [UIImage imageNamed:@"c01.png"];
 43     UIImage *calc02 = [UIImage imageNamed:@"c02.png"];
 44     UIImage *calcc01 = [UIImage imageNamed:@"cc01.png"];
 45     UIImage *calcc02 = [UIImage imageNamed:@"cc02.png"];
 46     UIImage *cald01 = [UIImage imageNamed:@"d01.png"];
 47     UIImage *cald02 = [UIImage imageNamed:@"d02.png"];
 48     UIImage *caldd = [UIImage imageNamed:@"dd01.png"];
 49     
 50     
 51     
 52     
 53     self.view.backgroundColor = [UIColor whiteColor];
 54     _label = [[UILabel alloc]initWithFrame:CGRectMake(20, 40, WIDTH - 40, 80)];
 55     _label.backgroundColor = [UIColor blackColor];
 56     _label.textColor = [UIColor whiteColor];
 57     _label.textAlignment = NSTextAlignmentRight;
 58     _label.font = [UIFont systemFontOfSize:30];
 59     _label.lineBreakMode = NSLineBreakByTruncatingHead;
 60     _label.text = @"0";
 61     [self.view addSubview:_label];
 62     
 63     UIButton *clearBtn = [[UIButton alloc]initWithFrame:CGRectMake(20, 130, (WIDTH-55)/4, (WIDTH-55)/4)];
 64     [clearBtn setTitle:@"C" forState:UIControlStateNormal];
 65 
 66     [clearBtn setImage:[UIImage imageNamed:@"ccc01.png"] forState:UIControlStateNormal];
 67     clearBtn.tag = 1;
 68     [clearBtn addTarget:self action:@selector(deleteInfo:) forControlEvents:UIControlEventTouchUpInside];
 69     [self.view addSubview:clearBtn];
 70     
 71     UIButton *deleteBtn = [[UIButton alloc]initWithFrame:CGRectMake(WIDTH-100, 130, (WIDTH-55)/4, (WIDTH-55)/4)];
 72     deleteBtn.tag = 2;
 73     [deleteBtn setTitle:@"<-" forState:UIControlStateNormal];
 74 
 75     [deleteBtn setImage:[UIImage imageNamed:@"t02.png"] forState:UIControlStateNormal];
 76     [deleteBtn setImage:[UIImage imageNamed:@"t01.png"] forState:UIControlStateHighlighted];
 77     [deleteBtn addTarget:self action:@selector(deleteInfo:) forControlEvents:UIControlEventTouchUpInside];
 78     [self.view addSubview:deleteBtn];
 79     NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3",@"+",@"4",@"5",@"6",@"-",@"7",@"8",@"9",@"x",@".",@"0",@"=",@"/", nil];
 80     NSArray *back01 = @[num101,num201,num301,calj02,num401,num501,num601,caljj02,num701,num801,num901,calc02,caldd,num001,cald02,calcc02];
 81     NSArray *back02 = @[num102,num202,num302,calj01,num402,num502,num602,caljj01,num702,num802,num902,calc01,caldd,num002,cald01,calcc01];
 82     for (int i = 0; i< arr.count; i++) {
 83         UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(20+i%4*((WIDTH-55)/4 + 5), 220+i/4 * ((WIDTH-55)/4 +5), (WIDTH-55)/4, (WIDTH-55)/4)];
 84         btn.tag = i+1;
 85         [btn setImage:[back01 objectAtIndex:i] forState:UIControlStateNormal];
 86         [btn setImage:[back02 objectAtIndex:i] forState:UIControlStateHighlighted];
 87         [btn setTitle:[arr objectAtIndex:i] forState:UIControlStateNormal];
 88         [btn addTarget:self action:@selector(manage:) forControlEvents:UIControlEventTouchUpInside];
 89         [self.view addSubview:btn];
 90         
 91     }
 92     flag = NO;
 93     a = 0;
 94 }
 95 -(void)deleteInfo:(UIButton *)btn{
 96     if (btn.tag == 1) {
 97         _label.text = @"0";
 98         a = 0;
 99     }else{
100         if (_label.text.length == 1) {
101             _label.text = @"0";
102             return;
103         }
104         _label.text = [_label.text substringToIndex:_label.text.length-1];
105     }
106 }
107 -(void)manage:(UIButton *)btn{
108     if (btn.tag%4 == 0||btn.tag == 15) {
109         flag = YES;
110         b = a;
111         a = (int)btn.tag;
112         //  NSLog(@"%f",b);
113         if (b == 0) {
114             result = [_label.text floatValue];
115         }else{
116             switch (b/4) {
117                 case 1:
118                     result  += [_label.text floatValue];
119                     break;
120                 case 2:
121                     result  -= [_label.text floatValue];
122                     break;
123                 case 3:
124                     result  *= [_label.text floatValue];
125                     break;
126                 case 4:
127                     result  /= [_label.text floatValue];
128                     break;                default:
129                     
130                     break;
131             }
132             
133         }
134         if (result > (int)result) {
135             _label.text = [NSString stringWithFormat:@"%.2f",result];
136         }else{
137             _label.text = [NSString stringWithFormat:@"%d",(int)result];
138         }
139         if (btn.tag == 15) {
140             result = 0;
141             a = 0;
142         }
143         
144     }else if(btn.tag != 13){
145         if ([_label.text isEqualToString:@"0"]) {
146             _label.text = @"";
147         }
148         if (flag == YES) {
149             flag = NO;
150             _label.text = @"";
151         }
152         if (btn.tag == 14) {
153             _label.text = [_label.text stringByAppendingString:@"0"];
154         }else{
155             _label.text = [_label.text stringByAppendingFormat:@"%zi",btn.tag - btn.tag/4];
156         }
157     }else{
158         NSRange range = [_label.text rangeOfString:@"."];
159         if (range.location == NSNotFound) {
160             _label.text = [_label.text stringByAppendingString:@"."];
161         }
162     }
163 }
164 - (void)didReceiveMemoryWarning {
165     [super didReceiveMemoryWarning];
166     // Dispose of any resources that can be recreated.
167 }
168 
169 @end

이것이 전부입니다. 유용한 학우들에게 도움이 되었으면 합니다.
이것 은 이사칙 연산 을 실현하지 못했기 때문 에 두 번째 연산자 에 따라 이전 연산 부원 이 계산한 결과 를 계산하여 다음 단계 로 계산할 수 밖에 없다
잘못된 점이 있으면 지적해 주시기 바랍니다. 동생은 감격해 마지 않습니다
다음은 데모의 다운로드 주소입니다.https://github.com/sosoneo/Calculator

좋은 웹페이지 즐겨찾기