oc计算器-objective-c 计算器

首先用Interface Builder做出一个简单的计算器图形:


先再.h文件中定义好输出口,全局变量还有方法
C代码  收藏代码

    @interface calculatorViewController : UIViewController { 
     
        IBOutlet UITextField *textField; 
        int number; 
        BOOL function; 
        BOOL isFlage; 
        BOOL isResult; 
        BOOL isAgain; 
        BOOL isPress; 
        NSString *num; 
        NSString *nums; 
        int TEMP; 
    } 
    @property(retain,nonatomic)UITextField *textField; 
     
    - (IBAction)buttionPressed:(id)sender; 
    - (void)plus:(id)sender:(NSString *)value; 
    - (void)minus:(id)sender:(NSString *)value; 
    - (void)multiple:(id)sender:(NSString *)value; 
    - (void)divide:(id)sender:(NSString *)value; 
    - (void)clearshow:(id)sender:(int)value; 
    @end 



连接好输出口,按下Ctrl键并从file's Owner中拖到text框中选择好合适的textfield输出口

之后要注意file's Owner的链接,按住ctrl从file's Owner拖到要显示的窗口,再选中要控制按钮,再按花+2键在里面找到touch up inside,点住后面的圆点拖到file's Owner中,按钮依次照做。


再在.m文件中写入方法:首先是buttonpressed方法,里面有对按钮的识别和每个运算方法的调用。
C代码  收藏代码

    - (IBAction)buttionPressed:(id)sender{ 
         
        if (!isFlage) { 
            num = [sender titleForState:UIControlStateNormal]; 
            nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num]; 
            textField.text = nums; 
        }else { 
            if (!isPress) { 
                isFlage=FALSE; 
                num = [sender titleForState:UIControlStateNormal];           
                nums = [[NSString alloc] initWithFormat:@"%@",num]; 
                textField.text = nums; 
            } 
                             
        } 
        [self plus:sender:nums]; 
        [self minus:sender:nums];› 
        [self multiple:sender :nums]; 
        [self divide:sender :nums]; 
        [self clearshow:sender:number]; 
         
        if ([num isEqualToString:@"="]) { 
            isPress=TRUE; 
            isFlage=TRUE; 
            switch (TEMP) { 
                case 1: 
                    number=number+[nums intValue]; 
                    textField.text=[NSString stringWithFormat:@"%d",number]; 
                    isResult=TRUE; 
                    break; 
                case 2: 
                    number=number-[nums intValue]; 
                    textField.text=[NSString stringWithFormat:@"%d",number]; 
                    isResult=TRUE; 
                    break; 
                case 3: 
                    number=number*[nums intValue]; 
                    textField.text=[NSString stringWithFormat:@"%d",number]; 
                    isResult=TRUE; 
                    break; 
                case 4: 
                    number=number/[nums intValue]; 
                    textField.text=[NSString stringWithFormat:@"%d",number]; 
                    isResult=TRUE;               
                    break; 
                default: 
                    break; 
            } 
             
        } 
    } 



之后就是对每个运算方法的调用。这里举一个加法的例子,其他运算方法套用即可,还有一个清零的方法
C代码  收藏代码

    - (void)plus:(id)sender:(NSString *)value{ 
        num = [sender titleForState:UIControlStateNormal]; 
        if ([num isEqualToString:@"+"]) { 
            TEMP=1; 
            isPress=FALSE; 
            isFlage=TRUE; 
             
            if (isResult) { 
                function=FALSE; 
            } 
            if (!function) { 
                number=number+[value intValue]; 
            }else{ 
                function=TRUE; 
                isResult=FALSE; 
                number=[value intValue]; 
            } 
            textField.text=[NSString stringWithFormat:@"%d",number]; 
        }    
    } 
     
    - (void)clearshow:(id)sender:(int)value{ 
        num = [sender titleForState:UIControlStateNormal]; 
        if ([num isEqualToString:@"Clear"]) { 
             
            number=0; 
            isFlage=FALSE; 
            textField.text=[NSString stringWithFormat:@"%d",number]; 
        } 
    } 


功能并不是很多,主要是运用到了一些基本的知识。自己需要注意的是字符串的连接
C代码  收藏代码

    nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num]; 


还有int型转化为string型:
C代码  收藏代码

    textField.text=[NSString stringWithFormat:@"%d",number]; 


string型转化为int型:
C代码  收藏代码

    [value intValue]; 

猜你喜欢

转载自wallier.iteye.com/blog/1703285
今日推荐