UI —— 计算器
#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 —— 计算器的更多相关文章
- Swing-布局管理器应用--WIN7上计算器的UI实现
学完了Swing布局管理器,为了加深理解我决定做一些UI的实现,那就从WIN7上的计算器开始吧!首先,我们来研究一下它的UI.该计算器的UI主要有3个,分别是标准型.科学型和程序员型,如下图所示. ...
- 【Android实验】UI设计-Android计算器
目录 实验目的 实验要求 实验过程 1. 界面设计 2. 功能设计 3. 运算处理 实验目的 自主完成一个简单APP的设计工作,综合应用已经学到的Android UI设计技巧,重点注意合理使用布局 实 ...
- OC中使用UI自己定义控件实现计算器的设计(版本号1简单的加减乘除,连加,连减,连除,连乘)
OC中使用UI自己定义控件实现计算器的设计(版本号1简单的加减乘除,连加.连减,连除,连乘) #import <UIKit/UIKit.h> @interface ViewControll ...
- AJ学IOS(01) UI之Hello World与加法计算器
不多说,AJ分享,必须精品 这两个一个是HelloWorld(左边) 另一个是 加法计算器(右边)的截图. 先运行第一个 程序看看效果 1.打开Xcode(没有哦mac系统的没有xcode的帮你们默哀 ...
- iOS UI基础-1.0加法计算器
1.打开Xcode,新建一个项目 2.Single View Application是最适合初学者的模板 3.填写该应用相关信息 4.搭建UI界面 项目创建完毕后,自动帮我们做了很多配置,也自动生成了 ...
- 寒城攻略:Listo 教你用 Swift 写IOS UI 项目计算器
之前总结过 Swift 的语言攻略,这里就不做赘述了,如今做一个实例计算器项目来介绍一下 Swift 的应用.(凝视已经全然.直接上代码) 先看一下效果图: 以下是详细的代码和解释: 分享快乐.开源中 ...
- 实现简单的计算器(设计UI)
要点说明: 1.一个textedit控件,其余全部是button控件,button布局方式:栅格布局(Grid layout) 2.对窗体的Title进行修改(默认是工程名) 3.在ui文件中设计的U ...
- UI事件 计算器界面
1.MainActivity.java package com.example.administrator.testapp2; import android.support.v7.app.AppCom ...
- UI 纯代码实现计算器
// MHTAppDelegate.h // TestCa // Copyright (c) 2014年 Summer. All rights reserved. #import <UIK ...
随机推荐
- java自己主动打开包装盒很容易导致两个误区
从J2SE 5.0开始提供基本数据类型的自己主动装箱(autoboxing).拆箱(unboxing)功能. 何为自己主动装箱: 当我们创建一个Integer对象时,却能够这样: Integer i ...
- 一二三(The Seventh Hunan Collegiate Programming Contest)
一二三 你弟弟刚刚学会写英语的一(one).二(two)和三(three).他在纸上写了好些一二三,可惜有些字母写错了.已知每个单词最多有一个字母写错了(单词长度肯定不会错),你能认出他写的啥吗? 输 ...
- Apache配置虚拟文件夹
作为一个Android开发人员,一直以为,至少应该有一个server语言,最近慢慢学习php,当然学习Apache使用.本文介绍Win7环境下,怎样配置Apache的虚拟文件夹. 首先,找到我们Apa ...
- 类似于qq联系人的tablview能够展开和收缩
在.h文件中定义三个数组和一个tablview UITableView *listTable; NSMutableArray *listArray; NSMutableArray *p ...
- Spring MVC中一般 普通类调用service
在Spring MVC中,Controller中使用service只需使用注解@Resource就行,但是一般类(即不使用@Controller注解的类)要用到service时,可用如下方法: 1.S ...
- Fedora16 安装相关
安装BCM4312无线网卡驱动 Linux系统BCM4312无线网卡驱动的安装 联想Y450 Linux系统 无线网卡驱动安装 准备工作: Broadcom官网驱动下载地址 http://www.br ...
- iPhone 6 首发无大陆,DevStore要去香港吗?
iPhone 6 正式公布,微博已经被刷屏.iPhone 6 的各种信息都已经明了,先不说什么配置,什么设计,就说一点--iPhone6 首发地方是没有中国大陆的.这让我想起来最近參加的源代码大赛,这 ...
- SQL Server :理解IAM 页
原文:SQL Server :理解IAM 页 在以前的文章里,我们讨论了数据页,GAM和SGAM,还有PFS页.今天我们一起来讨论下索引分配映射(Index Allocation Map:IAM)页. ...
- SSO(Single Sign On)系列(一)--SSO简单介绍
任何类型的站点,到达一定规模之后一定会存在这种问题:比方我们有N个系统.传统方式下我们就须要有N对不同的username和password,本来这些系统的开发都能为我们带来良好的效益,用户在用的时候并 ...
- 漫游Kafka介绍章节简介
原文地址:http://blog.csdn.net/honglei915/article/details/37564521 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息 ...