大家可以查看下自己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. linux备份svn仓库脚本,Centos详细搭建svn以及备份脚本
  2. Vivado 随笔(1) 综合属性之 ram_style rom_style?
  3. 【算法与数据结构】一道检测inversion count的初级算法
  4. android点九,android关于点九(.9)图片
  5. jquery中post,get,ajax请求相关
  6. C# 遍历窗体控件顺序问题
  7. Win11体验——该来的来了,该走的没走,不该走的走了
  8. 关闭笔记本显示器指定组合键才能打开_八大品牌笔记本Fn组合键大全
  9. SCOM2007R2上监控TMG之部署Agent
  10. Moodle 安装报错处理(Linux)
  11. 【新知实验室】腾讯云TRTC初体验
  12. JAVA使用POI导出设置列格式为文本格式
  13. 尽一下地主之宜,献上关于龙井茶的知识(介绍+分类+购买)
  14. 机器人瓦力漫威_漫威归来的发明家
  15. java javascript数组_浅谈javascript和java中的数组
  16. CVR预估模型ESMM
  17. python学习总结7 - 输入与输出【格式化字符串及读写文件】
  18. java电商项目源码_电子商务系统+java+web+完整项目+包含源码和数据库Java实用源码...
  19. ezdml 支付mysql 吗_数据库表设计工具EZDML使用教程
  20. 亚马逊库存下载 php,下载库存报告

热门文章

  1. 数据中心网络架构 — 云网一体化数据中心网络 — 需求背景
  2. VC++使用URI Scheme实现从web网页上打开本地C++应用程序(附源码)
  3. Opencv_10 图像的透视变换
  4. oracle 修改nls_nchar_characterset,NLS_NCHAR_CHARACTERSET 参数值是如何被指定的?
  5. iOS 证书申请和使用详解
  6. 概率生成函数(probability-generating function)
  7. 手写shellcode
  8. 讯商科技丨WMS系统建设目标和规划设计
  9. Solr教程--官方自带数据的三个练习及讨论翻译版本
  10. 详述 SQL 中的 distinct 和 row_number() over() 的区别及用法