iOS入门开发计算器小程序,包括button、label、image的使用
大家可以查看下自己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
![](/assets/blank.gif)
iOS入门开发计算器小程序,包括button、label、image的使用相关推荐
- 利用WordPress REST API 开发微信小程序从入门到放弃
自从我发布并开源WordPress版微信小程序以来,很多WordPress网站的站长问有关程序开发的问题,其实在文章:<用微信小程序连接WordPress网站>讲述过一些基本的要点,不过仍 ...
- 有关我零基础入门Opengl并想开发七巧板小程序交作业这档子事
有关我零基础入门Opengl并想开发七巧板小程序交作业这档子事 隔壁笔记链接:入手OpenGL 隔壁技术实现链接:部分思路实现 背景故事 c++课程老师给布置作业,"小作业",使用 ...
- 基于uniapp开发DiscuzQ社区的ios和安卓、小程序H5
Discuz!Q生成多端小程序和APP. 基于DiscuzQ!3.0版本API,使用UNIAPP框架重构,暂时没有做登录互动和支付相关功能. 基于uniapp开发DiscuzQ社区的ios和安卓.小程 ...
- 【微信小程序开发小白零基础入门】微信小程序入门【建议收藏】
微信小程序入门 文章目录 微信小程序入门 前言 一.小程序的概述 1.小程序简介 2.小程序诞生 3.小程序功能 4.小程序创建步骤 二.小程序的准备工作 1.注册开发者账号 2.小程序信息完善 3. ...
- 解决uniapp开发微信小程序预览pdf文件ios\安卓兼容问题
问题 项目需要用uniapp来开发微信小程序,其中,有一个功能是预览pdf, 后台以链接形式返回pdf地址,一开始使用web-view做链接跳转,但是出现ios文件可以正常打开,android打不开的 ...
- 基于mpvue开发微信小程序,入门开发步骤
接下来..... 1. 初始化一个 mpvue 项目 现代前端开发框架和环境都是需要 Node.js 的,如果没有的话,请先下载 nodejs 并安装. 然后打开命令行工具: # 1. 先检查下 No ...
- uniapp开发微信小程序,从构建到上线
前言: 本文主要介绍 uniapp 的基础使用,以及使用 uniapp 在企业开发的过程中的一个详细流程,比较适合第一次使用uniapp 开发微信小程序的伙伴,或者没有过实战经验的小伙伴参考:使用 H ...
- 小程序开发.微信小程序.组件.视图容器
小程序开发.微信小程序中的组件.视图容器组件 note:当前本文编辑中- 20220731 jcLee95 的个人博客 邮箱 :291148484@163.com CSDN 主页:https://bl ...
- 【开源】Westore Cloud 发布- 没后端没SQL没DBA,只需 javascript 开发云端小程序
Westore Cloud - 隐形云,NoBackEnd,NoSql,HiddenDB 好的设计便是感觉不到设计的存在 开发小程序,但是:没有后端!没有运维!没有 DBA!没有域名!没有证书!没有钱 ...
最新文章
- linux备份svn仓库脚本,Centos详细搭建svn以及备份脚本
- Vivado 随笔(1) 综合属性之 ram_style rom_style?
- 【算法与数据结构】一道检测inversion count的初级算法
- android点九,android关于点九(.9)图片
- jquery中post,get,ajax请求相关
- C# 遍历窗体控件顺序问题
- Win11体验——该来的来了,该走的没走,不该走的走了
- 关闭笔记本显示器指定组合键才能打开_八大品牌笔记本Fn组合键大全
- SCOM2007R2上监控TMG之部署Agent
- Moodle 安装报错处理(Linux)
- 【新知实验室】腾讯云TRTC初体验
- JAVA使用POI导出设置列格式为文本格式
- 尽一下地主之宜,献上关于龙井茶的知识(介绍+分类+购买)
- 机器人瓦力漫威_漫威归来的发明家
- java javascript数组_浅谈javascript和java中的数组
- CVR预估模型ESMM
- python学习总结7 - 输入与输出【格式化字符串及读写文件】
- java电商项目源码_电子商务系统+java+web+完整项目+包含源码和数据库Java实用源码...
- ezdml 支付mysql 吗_数据库表设计工具EZDML使用教程
- 亚马逊库存下载 php,下载库存报告
热门文章
- 数据中心网络架构 — 云网一体化数据中心网络 — 需求背景
- VC++使用URI Scheme实现从web网页上打开本地C++应用程序(附源码)
- Opencv_10 图像的透视变换
- oracle 修改nls_nchar_characterset,NLS_NCHAR_CHARACTERSET 参数值是如何被指定的?
- iOS 证书申请和使用详解
- 概率生成函数(probability-generating function)
- 手写shellcode
- 讯商科技丨WMS系统建设目标和规划设计
- Solr教程--官方自带数据的三个练习及讨论翻译版本
- 详述 SQL 中的 distinct 和 row_number() over() 的区别及用法