#import <UIKit/UIKit.h>

@interface MyViewController :UIViewController

{

NSInteger _firstName;

NSInteger _calculator;
// 数字的计数器

NSInteger _buttonType;
// 计算符号计数器

}

@property (nonatomic,retain)
UITextField *inputField;

@end


#import "MyViewController.h"

@interface
MyViewController ()

@end

@implementation MyViewController

-(void)dealloc

{

[_inputField
release];

[superdealloc];

}

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view.

//计算器的1 - 10个数字键

CGRect rect =
,,
, );

; i <
; i++) {

rect.;

NSString *s = [NSStringstringWithFormat:@"%d",
i];

UIButton *numButton = [UIButtonbuttonWithType:UIButtonTypeCustom];

[numButtonsetFrame:rect];

[numButton setBackgroundColor:[UIColorcyanColor]];

[numButton setTitle:sforState:UIControlStateNormal];

[self.viewaddSubview:numButton];

[numButton addTarget:selfaction:@selector(buttonClick:)forControlEvents:UIControlEventTouchUpInside];

}

CGRect textRect =
,
, , );

_inputField = [[UITextFieldalloc]
initWithFrame:textRect];

[_inputFieldsetKeyboardType:UIKeyboardTypeNamePhonePad];

[_inputFieldsetBackgroundColor:[UIColorgrayColor]];

[self.viewaddSubview:_inputField];

[_inputField
release];

textRect.;

textRect.;

UIButton *addButton = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

[addButtonsetFrame:textRect];

[addButton setBackgroundColor:[UIColorbrownColor]];

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

[self.viewaddSubview:addButton];

[addButton addTarget:selfaction:@selector(buttonEqual:)forControlEvents:UIControlEventTouchUpInside];

; j <
; j++) {

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

NSString *symbolString = [symbolArray
objectAtIndex:j];

textRect.;

UIButton *symbolButton = [UIButtonbuttonWithType:UIButtonTypeCustom];

[symbolButtonsetFrame:textRect];

[symbolButtonsetBackgroundColor:[UIColorgreenColor]];

[symbolButtonsetTitle:symbolString
forState:UIControlStateNormal];

[self.viewaddSubview:symbolButton];

[symbolButtonsetTag:j];

[symbolButton addTarget:selfaction:@selector(calculateSymbolButton:)forControlEvents:UIControlEventTouchUpInside];

}

textRect.;

UIButton *clearButton = [UIButtonbuttonWithType:UIButtonTypeCustom];

[clearButton setBackgroundColor:[UIColorpurpleColor]];

[clearButton setTitle:@"C"forState:UIControlStateNormal];

[clearButtonsetFrame:textRect];

[self.viewaddSubview:clearButton];

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

}

- (void)buttonClick:(UIButton *)sender

{

NSString *inputString =
nil;

==
_calculator) {

inputString = [_inputField.textstringByAppendingString:sender.titleLabel.text];

}else{

inputString = sender.titleLabel.text;

}

_calculator =
;

[_inputFieldsetText:inputString];

}

- (void)calculateSymbolButton:(UIButton *)sender

{

//此处另一点小瑕疵,须要在推断一下

[selfbuttonEqual:nil];

_firstName = [_inputField.textintegerValue];

//保存输入的下一个数的形式

_calculator =
;

//
保存计算类型 + - / *(用tag更简单一点)

_buttonType = sender.tag;

}

- (void)clearButton:(UIButton *)sender

{

_firstName =
;

_calculator =
;

_buttonType =
;

_inputField.text =@"";

}

- (void)buttonEqual:(UIButton *)sender

{

NSInteger result;

switch (_buttonType) {

case
:

result =_firstName + [_inputField.textintegerValue];

break;

case
:

result =_firstName - [_inputField.textintegerValue];

break;

case
:

result =_firstName * [_inputField.textintegerValue];

break;

case
:

result =_firstName / [_inputField.textintegerValue];

break;

default:

break;

}

NSString *end = [NSStringstringWithFormat:@"%ld",
result];

_inputField.text = end;

}

版权声明:本文博主原创文章,博客,未经同意不得转载。

UI —— 计算器的更多相关文章

  1. Swing-布局管理器应用--WIN7上计算器的UI实现

    学完了Swing布局管理器,为了加深理解我决定做一些UI的实现,那就从WIN7上的计算器开始吧!首先,我们来研究一下它的UI.该计算器的UI主要有3个,分别是标准型.科学型和程序员型,如下图所示.   ...

  2. 【Android实验】UI设计-Android计算器

    目录 实验目的 实验要求 实验过程 1. 界面设计 2. 功能设计 3. 运算处理 实验目的 自主完成一个简单APP的设计工作,综合应用已经学到的Android UI设计技巧,重点注意合理使用布局 实 ...

  3. OC中使用UI自己定义控件实现计算器的设计(版本号1简单的加减乘除,连加,连减,连除,连乘)

    OC中使用UI自己定义控件实现计算器的设计(版本号1简单的加减乘除,连加.连减,连除,连乘) #import <UIKit/UIKit.h> @interface ViewControll ...

  4. AJ学IOS(01) UI之Hello World与加法计算器

    不多说,AJ分享,必须精品 这两个一个是HelloWorld(左边) 另一个是 加法计算器(右边)的截图. 先运行第一个 程序看看效果 1.打开Xcode(没有哦mac系统的没有xcode的帮你们默哀 ...

  5. iOS UI基础-1.0加法计算器

    1.打开Xcode,新建一个项目 2.Single View Application是最适合初学者的模板 3.填写该应用相关信息 4.搭建UI界面 项目创建完毕后,自动帮我们做了很多配置,也自动生成了 ...

  6. 寒城攻略:Listo 教你用 Swift 写IOS UI 项目计算器

    之前总结过 Swift 的语言攻略,这里就不做赘述了,如今做一个实例计算器项目来介绍一下 Swift 的应用.(凝视已经全然.直接上代码) 先看一下效果图: 以下是详细的代码和解释: 分享快乐.开源中 ...

  7. 实现简单的计算器(设计UI)

    要点说明: 1.一个textedit控件,其余全部是button控件,button布局方式:栅格布局(Grid layout) 2.对窗体的Title进行修改(默认是工程名) 3.在ui文件中设计的U ...

  8. UI事件 计算器界面

    1.MainActivity.java package com.example.administrator.testapp2; import android.support.v7.app.AppCom ...

  9. UI 纯代码实现计算器

    //  MHTAppDelegate.h //  TestCa //  Copyright (c) 2014年 Summer. All rights reserved. #import <UIK ...

随机推荐

  1. 在qt中用tcp传输xml消息

    在qt中用tcp传输xml消息 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:Qt5 3.1.2 说明: 在tcp上 ...

  2. linux LVS DR模式配置

    拓扑图: 测试环境:CentOS 6.5 X86 64位 配置步骤: 1.  安装测试环境 [root@UCS-1 ~]# yum -y install httpd [root@UCS-1 ~]# c ...

  3. hdu4280(最大流)

    传送门:Island Transport 题意:有N个岛屿 M条无向路 每个路有一最大允许的客流量,求从最西的那个岛屿最多能运用多少乘客到最东的那个岛屿. 分析:无向图正反都加弧,权值一样,这题点多, ...

  4. android圆角View实现及不同版本号这间的兼容

    在做我们自己的APP的时候.为了让APP看起来更加的好看,我们就须要将我们的自己的View做成圆角的,毕竟主流也是将非常多东西做成圆角.和苹果的外观看起来差点儿相同,看起来也还不错. 要将一个View ...

  5. e​c​s​h​o​p​模​板​ l​b​i​文​件

    Ecshop根目录/ |->其它目录|->themes |->例:default (模板项目目录) |->images                             ...

  6. POJ 3181 Dollar Dayz 简单DP

    这DP虽然简单 但是思考一下还是挺好的 题意是 1,2,3,4....k 用加法凑成N 每个数可取不限个数 令dp[i][j] 表示前i种数凑成j的方案数 然后dp[i][j] = dp[i - 1] ...

  7. TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error:

    今天是2014-06-17.遇到一个很奇怪的问题,可能之前測试改动监听的原因,导致监听启动后自己主动关闭,特此记录一下整个处理过程, 监听配置文件信息例如以下: [oracle@dg1 admin]$ ...

  8. Windows Phone开发(33):路径之其它Geometry

    原文:Windows Phone开发(33):路径之其它Geometry 上一节中,我们把最复杂的PathGeometry给干了,生剩下几个家伙就好办事了.一起来见见他们的真面目吧. 一.LineGe ...

  9. wamp的安装使用(转)

    这次需要记录一下我搭建web服务器的过程. 第一步,确定自己要使用的平台:这次我用的是windows2008 server版本 第二步,计划是想要纯手工的安装apache.php等.但是我们可以下载一 ...

  10. 转载ECTouch1.0 修改后台广告管理中广告列表显示广告图片

    http://www.ectouch.cn/topics/94.html 效果 操作: 1. 修改后台控制器文件 调用出相关字段信息. mobile\include\apps\admin\contro ...