89283517 2012-10-22
首先用InterfaceBuilder做出一个简单的计算器图形:
先再.h文件中定义好输出口,全局变量还有方法
C代码收藏代码
@interfacecalculatorViewController:UIViewController{
IBOutletUITextField*textField;
intnumber;
BOOLfunction;
BOOLisFlage;
BOOLisResult;
BOOLisAgain;
BOOLisPress;
NSString*num;
NSString*nums;
intTEMP;
}
@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'sOwner中拖到text框中选择好合适的textfield输出口
之后要注意file'sOwner的链接,按住ctrl从file'sOwner拖到要显示的窗口,再选中要控制按钮,再按花+2键在里面找到touchupinside,点住后面的圆点拖到file'sOwner中,按钮依次照做。
再在.m文件中写入方法:首先是buttonpressed方法,里面有对按钮的识别和每个运算方法的调用。
C代码收藏代码
-(IBAction)buttionPressed:(id)sender{
if(!isFlage){
num=[sendertitleForState:UIControlStateNormal];
nums=[[NSStringalloc]initWithFormat:@"%@%@",textField.text,num];
textField.text=nums;
}else{
if(!isPress){
isFlage=FALSE;
num=[sendertitleForState:UIControlStateNormal];
nums=[[NSStringalloc]initWithFormat:@"%@",num];
textField.text=nums;
}
}
[selfplus:sender:nums];
[selfminus:sender:nums];›
[selfmultiple:sender:nums];
[selfdivide:sender:nums];
[selfclearshow:sender:number];
if([numisEqualToString:@"="]){
isPress=TRUE;
isFlage=TRUE;
switch(TEMP){
case1:
number=number+[numsintValue];
textField.text=[NSStringstringWithFormat:@"%d",number];
isResult=TRUE;
break;
case2:
number=number-[numsintValue];
textField.text=[NSStringstringWithFormat:@"%d",number];
isResult=TRUE;
break;
case3:
number=number*[numsintValue];
textField.text=[NSStringstringWithFormat:@"%d",number];
isResult=TRUE;
break;
case4:
number=number/[numsintValue];
textField.text=[NSStringstringWithFormat:@"%d",number];
isResult=TRUE;
break;
default:
break;
}
}
}
之后就是对每个运算方法的调用。这里举一个加法的例子,其他运算方法套用即可,还有一个清零的方法
C代码收藏代码
-(void)plus:(id)sender:(NSString*)value{
num=[sendertitleForState:UIControlStateNormal];
if([numisEqualToString:@"+"]){
TEMP=1;
isPress=FALSE;
isFlage=TRUE;
if(isResult){
function=FALSE;
}
if(!function){
number=number+[valueintValue];
}else{
function=TRUE;
isResult=FALSE;
number=[valueintValue];
}
textField.text=[NSStringstringWithFormat:@"%d",number];
}
}
-(void)clearshow:(id)sender:(int)value{
num=[sendertitleForState:UIControlStateNormal];
if([numisEqualToString:@"Clear"]){
number=0;
isFlage=FALSE;
textField.text=[NSStringstringWithFormat:@"%d",number];
}
}
功能并不是很多,主要是运用到了一些基本的知识。自己需要注意的是字符串的连接
C代码收藏代码
nums=[[NSStringalloc]initWithFormat:@"%@%@",textField.text,num];
还有int型转化为string型:
C代码收藏代码
textField.text=[NSStringstringWithFormat:@"%d",number];
string型转化为int型:
C代码收藏代码
[valueintValue];