#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. ArcGIS 10.2 操作SQLite

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它.ArcGIS 10.2 提供了对SQLite数据库的支持,这对那 ...

  2. ASP.NET程序发布流程

    1.在要发布的项目上 右键->发布,如下图所示 “目标位置”选择要发布到的本地目录,点击“发布” 2.打开IIS,在右键“网站”,选择“添加网站”,出现如下所示的对话框 在“网站名称”处添加一个 ...

  3. NAT ALG原理

    1      NAT ALG简介 普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,比如多媒体协议(H.323.SIP等).F ...

  4. String数组必须初始化之后才能赋值

    犯了一个很大的错误: String sample[]=null; sample[]="hello"; samlple[]="world"; 直接就报异常了. 记 ...

  5. FUDCon - FedoraProject

    FUDCon - FedoraProject FUDCon: Fedora Users and Developers Conference FUD: An acronym for Fear, Unce ...

  6. HashMap-死锁导致cpu占用100%分析(转)

    最近项目里面的一段千年代码出了问题,这个问题以前也出现过,不过不是那么明显,这次迁移机器由以前的4台机子变成2台以后问题被放大,最终不得不解决,特此分析一下. 先放出问题的代码 ? 1 2 3 4 5 ...

  7. malloc一次性最大能申请多大内存空间

    受用户态内存地址空间的限制.64 位系统下分配几个 T 不成问题. 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:zz matrix链接:http://www.zhihu. ...

  8. VS2008--无法找到“XXX.exe”的调试信息,或者调试信息不匹配

    ------解决方案----- 1. 关闭掉Visual Studio 实例. 2. 找到解决方案下的.suo文件并删除之. 3. 重新启动Visual Studio,或者直接双击.sln文件打开 4 ...

  9. XAML基础(一)

    1.0 XAML是啥? XAML(eXtensible Application Markup Language,可 扩展应用 程序标记语言) 是一种声明性的XML语法 ,像WPF,WF或者Silver ...

  10. cocos2d-x3.0 实现HTTP请求GET、POST

    HTTP请求实现 把以下代码拷贝到新创建的project中就能看到效果 HelloWorldScene.h #include "cocos2d.h" /*记得要引头文件*/ #in ...