#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. 在 Java 项目中解压7Zip特殊压缩算法文件

    1 问题描写叙述 Java Web 后端下载了一个经特殊算法压缩的 zip 文件,由于不能採用 java 本身自带的解压方式,必须採用 7Zip 来解压.所以,提到了本文中在 java web 后端调 ...

  2. python语言学习5——输入和输出

    输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. 注意点: 字符串用的是单引号 碰到逗号输出时就会输出一个空格 输入 python提供了一个input(),可以让用户输入一个字 ...

  3. centos 更改hostname

    vim /etc/hosts vim /etc/sysconfig/network hostname hostname mlzboy-centos63

  4. 百度地图AP1

    百度地图API的用法 百度地图API演示样例 百度地图API学习总结 <1> <%@ Page Language="C#" Inherits="Syst ...

  5. iPhone、iPad强制关机

    情景:iPad測试应用过程中死机了. 解决:同一时候按住右上方的电源键和屏幕下方的HOME键大约10秒左右. 就会自己主动强制断电关机,然后重新启动. 强制重新启动后你会看到进入苹果的标志,然后进入主 ...

  6. js快速分享代码

    这是一款简单易用的文章分享工具,您只需将下面的html代码拷贝到模板中就可以实现文章快速分享功能.如果您想分享你的博客.个人网站或者企业网站等等,下面是两款不错的分享工具,值得拥有! 1. <d ...

  7. Jersey框架三:Jersey对HTTPS的支持

    Jersey系列文章: Jersey框架一:Jersey RESTful WebService框架简介 Jersey框架二:Jersey对JSON的支持 Jersey框架三:Jersey对HTTPS的 ...

  8. 京东商城招聘匹配系统资深工程师 T4级别

    岗位级别:T4 岗位职责: 1.负责匹配系统的架构设计 2.负责网页抽取.实体识别.匹配等算法设计 3.核心代码编写,代码review 任职要求: 1.熟悉机器学习.自然语言处理理论和算法2.三年以上 ...

  9. Java解惑七:很多其它类之谜

    谜题66 继承的问题. 对于实例方法:命名同样时,子类会覆写父类的方法,且訪问权限至少和父类一样大. 对于域:命名同样时,子类会隐藏父类的域,且訪问权限随意. 谜题67 不要重用库中的类名. 谜题68 ...

  10. [置顶] LLVM每日谈之十五 LLVM自带的examples

    作者:snsn1984 在LLVM源码的目录下,有一个目录叫做examples,这个目录下边有几个LLVM的例子,初学者一般不会太关注这些例子,但是这些例子确实是精华中的精华,在LLVM的学习过程中不 ...