#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. 关于windows系统影子账户的问题

    在这之前,需要大家了解几个问题,一个是SID,一个是账号的F值. Windows账户的SID 在Windows系统中,系统会为每个用户账户建立一个唯一的安全标识符(Security Identifie ...

  2. Java的byte数组

    今天我们讨论一下Java的byte数组.byte数组就是字节数组,每一位存一个字节.看下面程序,猜猜输出多少? package com.wjy.bytes; import java.io.File; ...

  3. poj3254(状压dp)

    题目连接:http://poj.org/problem?id=3254 题意:一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相 ...

  4. 服务器编程入门(7)I/O复用

    问题聚焦:     前篇提到了I/O处理单元的四种I/O模型.     本篇详细介绍实现这些I/O模型所用到的相关技术.     核心思想:I/O复用 使用情景: 客户端程序要同时处理多个socket ...

  5. Java文件压缩分割(待)

    http://blog.csdn.net/ycg01/article/details/1366648

  6. gustafson,Sun-Ni,Amdahl

    gustafson 定律由 John Gustafson首先提出.描述:系统优化某部件所获得的系统性能的改善程度,取决于该部件被使用的频率,或所占总执行时间的比例. Gustafson定理中,加速比与 ...

  7. linux tomcat部署含有matlab画图打包的java web程序

    首先说下问题:matlab可以把相关算法代码打包成jar文件共java调用,本例使用的jar文件的作用是画图并保存,然后部署在linux的tomcat中进行发布.这里出现了一个问题,具体如下:linu ...

  8. restrictkeyword

    今天在移植ffmpeg到opencore时出现一个编译错误: /libavcodec/dsputil.c:545: error: expected ';', ',' or ')' before 'bl ...

  9. CodeForces 343D 线段树维护dfs序

    给定一棵树,初始时树为空 操作1,往某个结点注水,那么该结点的子树都注满了水 操作2,将某个结点的水放空,那么该结点的父亲的水也就放空了 操作3,询问某个点是否有水 我们将树进行dfs, 生成in[u ...

  10. vps自己搭建VPN(转)

    1.购买一个VPS: https://www.pzea.com/North-America-openvz-vps.html 2.下载putty软件,进行vpn安装: http://www.chiark ...