大家可以查看下自己X-code的版本号:先点击一次X-code,然后按如下操作

点开之后选择最后一栏locations:(例如我的是X-code 5.1.1是比较高的版本了,可以自动release之类的)

接下来就是计算器小程序的编写:

首先给大家看看完成后的界面吧:

代理里面的文件不动:如我的MJAppDalegate.h 和MJAppDalegate.m还是用系统自带的代码函数,我改变的是控制器函数里面的内容;

选中Main.storyboard可以看到如下,该控制器是连接着view的:(View Controller选中右击)

MJViewController.h文件中:

#import <UIKit/UIKit.h>

@interface MJViewController :UIViewController

@property(retain,nonatomic)UIButton *button;

@property(retain,nonatomic)UILabel *label;

@property(retain,nonatomic)NSMutableString *str;

@property(assign,nonatomic)double inputNum,saveNum,outputNum,jumpNum;

@end

MJViewController.m文件中:

//

//  MJViewController.m

//  calculator

//

//  Created by admin on 14-7-28.

//  Copyright (c) 2014年 itcast. All rights reserved.

//

#import "MJViewController.h"

@interface MJViewController ()

@end

@implementation MJViewController

@synthesize button,label,str,inputNum,saveNum,outputNum,jumpNum;

- (void)viewDidLoad

{

[superviewDidLoad];

self.str = [[NSMutableStringalloc]init];

//设置背景图片

//    NSBundle *bundle = [NSBundle mainBundle];

//    NSData *data  = [[NSData alloc] initWithContentsOfFile:[bundle pathForResource:@"background" ofType:@"jpg"]];

//    UIImage *img = [UIImage imageWithData:data];

UIImage *img = [UIImageimageNamed:@"backgroud.jpg"];

[self.viewsetBackgroundColor:[UIColorcolorWithPatternImage:img]];//将背景图片设置为background.jpg

//添加提示性文字

UIAlertView *alex = [[UIAlertViewalloc]initWithTitle:@"使用说明" message:@"不支持点击运算符连算" delegate:nilcancelButtonTitle:@"OK"otherButtonTitles:nil];

[alexshow];

//创建标签

self.label = [[UILabelalloc]initWithFrame:CGRectMake(90,40,200,50)];

[self.viewaddSubview:label];

self.label.backgroundColor = [UIColor clearColor];//清除背景颜色

self.label.textColor = [UIColor blueColor];//设置字体颜色

self.label.textAlignment = NSTextAlignmentRight;//字体居右;

self.label.font = [UIFont systemFontOfSize:32.4];

//添加数字1-9

NSArray *array = [NSArrayarrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",nil];//nil代表指针结束

int n =0;

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

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

self.button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];//设置圆角

self.button.frame =CGRectMake(30 +65*j, 150 +65*i,60,60);

[self.buttonsetBackgroundColor:[UIColorwhiteColor]];

[self.buttonsetTitle:[arrayobjectAtIndex:n++]forState:UIControlStateNormal];

[self.buttonaddTarget:selfaction:@selector(one:)forControlEvents:UIControlEventTouchUpInside];

[self.viewaddSubview:self.button];

}

}

//添加0按钮

UIButton *button0 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

[button0setFrame:CGRectMake(30 ,345,60,60)];

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

[button0 setBackgroundColor:[UIColorwhiteColor]];

[button0 addTarget:selfaction:@selector(one:)forControlEvents:UIControlEventTouchUpInside];

[self.viewaddSubview:button0];

//添加运算符

NSArray *array1 = [NSArrayarrayWithObjects:@"+",@"-",@"*",@"/",nil];

int n1 =0;

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

self.button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];//设置圆角

self.button.frame =CGRectMake(225,150 +65*i, 60,60);

[self.buttonsetTitle:[array1objectAtIndex:n1++]forState:UIControlStateNormal];

[self.buttonaddTarget:selfaction:@selector(two:)forControlEvents:UIControlEventTouchUpInside];

[self.buttonsetBackgroundColor:[UIColorwhiteColor]];

[self.viewaddSubview:self.button];

}

UIButton *buttonPoint = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

[buttonPointsetFrame:CGRectMake(95,345,60,60)];

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

[buttonPoint addTarget:selfaction:@selector(one:)forControlEvents:UIControlEventTouchUpInside];

[buttonPoint setBackgroundColor:[UIColorwhiteColor]];

[self.viewaddSubview:buttonPoint];

UIButton *button1 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

[button1setFrame:CGRectMake(160,345,60,60)];

[button1 setTitle:@"back"forState:UIControlStateNormal];

[button1 addTarget:selfaction:@selector(back:)forControlEvents:UIControlEventTouchUpInside];

[button1 setBackgroundColor:[UIColorwhiteColor]];

[self.viewaddSubview:button1];

//清除按钮

UIButton *buttonBack=[UIButtonbuttonWithType:UIButtonTypeRoundedRect];

[buttonBacksetFrame:CGRectMake(30,410,125,40)];

[buttonBack setTitle:@"AC"forState:UIControlStateNormal];

[buttonBack addTarget:selfaction:@selector(clean:)forControlEvents:UIControlEventTouchUpInside];

[buttonBack setBackgroundColor:[UIColorwhiteColor]];

[self.viewaddSubview:buttonBack];

UIButton *button2=[UIButtonbuttonWithType:UIButtonTypeRoundedRect];

[button2setFrame:CGRectMake(160,410,125,40)];

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

[button2 addTarget:selfaction:@selector(go:)forControlEvents:UIControlEventTouchUpInside];

[button2 setBackgroundColor:[UIColorwhiteColor]];

[self.viewaddSubview:button2];

// Do any additional setup after loading the view, typically from a nib.

}

-(void) one:(UIButton *)sender//按下数字键时调用的函数

{

if ([self.strhasPrefix:@"+"]||[self.strhasPrefix:@"-"]||[self.strhasPrefix:@"*"]||[self.strhasPrefix:@"/"]) {

[self.strsetString:@""];

}

[self.strappendString:[sendercurrentTitle]];

self.label.text =self.str;

self.inputNum = [self.label.textdoubleValue];

}

//inputNum,saveNum,outputNum,jumpNum;

- (void)two:(id)sender//按下符号键时调用的函数

{

[self.strsetString:@""];

[self.strappendString:[sendercurrentTitle]];

self.label.text = [NSStringstringWithString:str];

if([self.strhasPrefix:@"+"])

{

self.saveNum =self.inputNum;

self.jumpNum =1;

}

elseif([self.strhasPrefix:@"-"])

{

self.saveNum =self.inputNum;

self.jumpNum =2;

}

elseif([self.strhasPrefix:@"*"])

{

self.saveNum =self.inputNum;

self.jumpNum =3;

}

elseif([self.strhasPrefix:@"/"])

{

self.saveNum =self.inputNum;

self.jumpNum =4;

}

}

-(void) go:(id)sender

{

if (self.jumpNum ==1) {

self.outputNum =self.saveNum + [self.label.textdoubleValue];

self.label.text = [NSStringstringWithFormat:@"%f",self.outputNum];//现实计算结果

self.inputNum = [self.label.textdoubleValue];//保证连加

self.outputNum =0;

[self.strsetString:@""];//保证每次结果输出后继续计算,不需要清除,str存数字、运算符的

}

elseif (self.jumpNum ==2) {

self.outputNum =self.saveNum - [self.label.textdoubleValue];

self.label.text = [NSStringstringWithFormat:@"%f",self.outputNum];//现实计算结果

self.inputNum = [self.label.textdoubleValue];//

self.outputNum =0;

[self.strsetString:@""];//保证每次结果输出后继续计算,不需要清除,str存数字、运算符的

}

elseif (self.jumpNum ==3) {

self.outputNum =self.saveNum * [self.label.textdoubleValue];

self.label.text = [NSStringstringWithFormat:@"%f",self.outputNum];//现实计算结果

self.inputNum = [self.label.textdoubleValue];//

self.outputNum =0;

[self.strsetString:@""];//保证每次结果输出后继续计算,不需要清除,str存数字、运算符的

}

elseif (self.jumpNum ==4) {

self.outputNum =self.saveNum / [self.label.textdoubleValue];

self.label.text = [NSStringstringWithFormat:@"%f",self.outputNum];//现实计算结果

self.inputNum = [self.label.textdoubleValue];//

self.outputNum =0;

[self.strsetString:@""];//保证每次结果输出后继续计算,不需要清除,str存数字、运算符的

}

}

-(void) clean:(id)sender

{

[self.strsetString:@""];

self.inputNum =0;

self.saveNum =0;

self.outputNum =0;

self.label.text =@"0";

}

-(void)back:(id)sender//回退一位

{

if (![self.label.textisEqualToString:@""] && ![self.strisEqualToString:@""]) {

[self.strdeleteCharactersInRange:NSMakeRange(self.str.length-1,1)];

self.label.text = [NSStringstringWithString:self.str];

}

}

- (void)didReceiveMemoryWarning//系统自带,当机器内存不够时释放内存,正常情况不会调用

{

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

文件到此结束,
运行程序出现如下界面:

iOS入门开发计算器小程序,包括button、label、image的使用相关推荐

  1. 利用WordPress REST API 开发微信小程序从入门到放弃

    自从我发布并开源WordPress版微信小程序以来,很多WordPress网站的站长问有关程序开发的问题,其实在文章:<用微信小程序连接WordPress网站>讲述过一些基本的要点,不过仍 ...

  2. 有关我零基础入门Opengl并想开发七巧板小程序交作业这档子事

    有关我零基础入门Opengl并想开发七巧板小程序交作业这档子事 隔壁笔记链接:入手OpenGL 隔壁技术实现链接:部分思路实现 背景故事 c++课程老师给布置作业,"小作业",使用 ...

  3. 基于uniapp开发DiscuzQ社区的ios和安卓、小程序H5

    Discuz!Q生成多端小程序和APP. 基于DiscuzQ!3.0版本API,使用UNIAPP框架重构,暂时没有做登录互动和支付相关功能. 基于uniapp开发DiscuzQ社区的ios和安卓.小程 ...

  4. 【微信小程序开发小白零基础入门】微信小程序入门【建议收藏】

    微信小程序入门 文章目录 微信小程序入门 前言 一.小程序的概述 1.小程序简介 2.小程序诞生 3.小程序功能 4.小程序创建步骤 二.小程序的准备工作 1.注册开发者账号 2.小程序信息完善 3. ...

  5. 解决uniapp开发微信小程序预览pdf文件ios\安卓兼容问题

    问题 项目需要用uniapp来开发微信小程序,其中,有一个功能是预览pdf, 后台以链接形式返回pdf地址,一开始使用web-view做链接跳转,但是出现ios文件可以正常打开,android打不开的 ...

  6. 基于mpvue开发微信小程序,入门开发步骤

    接下来..... 1. 初始化一个 mpvue 项目 现代前端开发框架和环境都是需要 Node.js 的,如果没有的话,请先下载 nodejs 并安装. 然后打开命令行工具: # 1. 先检查下 No ...

  7. uniapp开发微信小程序,从构建到上线

    前言: 本文主要介绍 uniapp 的基础使用,以及使用 uniapp 在企业开发的过程中的一个详细流程,比较适合第一次使用uniapp 开发微信小程序的伙伴,或者没有过实战经验的小伙伴参考:使用 H ...

  8. 小程序开发.微信小程序.组件.视图容器

    小程序开发.微信小程序中的组件.视图容器组件 note:当前本文编辑中- 20220731 jcLee95 的个人博客 邮箱 :291148484@163.com CSDN 主页:https://bl ...

  9. 【开源】Westore Cloud 发布- 没后端没SQL没DBA,只需 javascript 开发云端小程序

    Westore Cloud - 隐形云,NoBackEnd,NoSql,HiddenDB 好的设计便是感觉不到设计的存在 开发小程序,但是:没有后端!没有运维!没有 DBA!没有域名!没有证书!没有钱 ...

最新文章

  1. python元类简述
  2. android 获取元素的下标_Appium中定位方式by_android_uiautomator
  3. 绝了,几款主流的 JSON 库性能对比!
  4. python一个函数调用另一个函数的返回值_在另一个函数中使用返回值
  5. pycharm 快捷使用
  6. HandlerInterceptor 处理器拦截器的用法
  7. 第十五章 第十五章 异步A3C(Asynchronous Advantage Actor-Critic,A3C)-强化学习理论学习与代码实现(强化学习导论第二版)
  8. Linux学习笔记08—如何关闭防火墙
  9. 洛谷oj---P3205 [HNOI2010]合唱队
  10. powerdesign如何利用表导出sql
  11. android免root hook框架legend
  12. countif函数比较两列不同_Excel如何对比两列姓名找出两列相同和不同的姓名有哪些方法...
  13. 人物连连看 python课程设计 pygame学习
  14. 苹果ID申请开发者 双重认证问题?
  15. presentation健身主题HTML,如何用英文做presentation
  16. 定时器/计数器、中断
  17. Hive之——数据定义
  18. 世界你好python_Python中的彩蛋(哈哈哈)
  19. Python %取模小故事
  20. android 自定义含有滚动选择器的对话框

热门文章

  1. R实战 | 置换多元方差分析(以PCoA的PERMANOVA分析为例)
  2. 卡通渲染技巧(三)——崩坏3卡通渲染实践
  3. 处理文件时遇到:The process cannot access the file because it is being used by another process.
  4. 微信小程序开发环境搭建
  5. 续流二极管的工作原理
  6. Nutrispoter: Eat like a sporter
  7. 数据库事务介绍(二)如何使用事务
  8. C# 数据库SqlServer基础增删改查(返回单个值)
  9. 声网Agora上市,只是云通信产业技术与商业爆发的前夜
  10. Python 3.8 发布,新特性全面解读!