`

ioS- 简单计算器

 
阅读更多

 1》首次学习IOS(Swift)开发

 

第一个UI界面程序: 简单的计算器,主要先熟悉swift 基本语法,用惯了其他的语言,所以写代码时比较容易出错,好在xcode编译器很强,对于界面布局来说跟android 差远了,估计我还没有真正学会他的原理以及使用现有的一些组件进行辅助开发。

 

这个程序主要功能点:

 1 首先进行界面布局 ,自己拖动,人为计算控件的大小

 2 controller 中进行界面组件绑定以及增加事件。

 3 具体计算 ,录入,相关业务整理到具体类中实现。

 

具体的图如下



 

 

相关代码:

 

controller:

 /*
    Init ui widget and add event
    */
    func initUI() {
        label = self.view.viewWithTag(100) as! UILabel
        btnCalc = self.view.viewWithTag(99) as! UIButton
        btnBack = self.view.viewWithTag(98) as! UIButton
        btnClear = self.view.viewWithTag(97) as! UIButton
       
        btnCalc.addTarget(self, action: Selector("calcResult"), forControlEvents: .TouchUpInside)
       
        btnClear.addTarget(self, action: Selector("clickClearUI"), forControlEvents: .TouchUpInside)
       
        btnBack.addTarget(self, action: Selector("clickBackUI"), forControlEvents: .TouchUpInside)
       
        // operator add event
        for a in 80...83 {
            let btn  = self.view.viewWithTag(a) as! UIButton
            btn.addTarget(self, action: Selector("clickOpt:"), forControlEvents: .TouchUpInside)
           
        }
       
        for b in 1...10 {
            let v = self.view.viewWithTag(b)
            if v != nil && v?.isKindOfClass(UIButton) == true {
                let btn = v as! UIButton
                btn.addTarget(self, action: Selector("clickNum:"), forControlEvents: .TouchUpInside)
            }
           
        }
       
       
       
       
    }

 

业务实现类:

//
//  CalcModel.swift
//  calculator
//
//  Created by mjp on 16/1/20.
//  Copyright © 2016年 mjp. All rights reserved.
//

import Foundation

class CalcModel{
    var opt0 : String = ""
   
    var opt1: String = ""
   
    var opt: Int = -1
    /*
     Input data from ui data
    */
    func inputData(var input : Int){
        if input >= 10 {
            input = 0
        }
       
        if opt  != -1 {
            opt1.appendContentsOf(String(input))
        }else{
            opt0.appendContentsOf(String(input))
        }
    }
   
    /*
     Input operator (+ - * /) mappings(80 81 82 83)
    */
    func inputOpt(input : Int){
        self.opt = input
    }
   
    /*
     Calc result
    */
    func calc() -> String {
        var rb : String = String("")
        let op0 : Int? = Int(opt0)
        let op1 : Int? = Int(opt1)
        if op0 != nil && op1 != nil  && opt != -1{
           
            switch opt{
            case 80 :
                // +
                let t = op0! + op1!
                rb = "\(t)"
            case 81 :
                // -
                let t = op0! - op1!
                rb = "\(t)"
            case 82 :
                // *
                let t = op0! * op1!
                rb = "\(t)"
            case 83 :
                 // /
                if op1 == nil || op1 != 0 {
                    rb = "0"
                } else {
                    let t = op0! / op1!
                    rb = "\(t)"
                }
            default:
                rb = ""
               
            }

        }
       
        return rb
    }
   
    /*
    Reset data and operator
    */
    func clear() {
        opt = -1
        opt0 = ""
        opt1 = ""
    }
   
    /*
    Back data and operator
    */
    func back(){
        if opt == -1 {
            if opt0.characters.count == 0{
                let b = opt0.characters.count
                if  b > 0 {
                    let index = opt0.startIndex.advancedBy(b - 1) //swift 2.0+
                    opt0.removeAtIndex(index)
                   
                }
             }
        } else if opt >= 80 && opt <= 83 {
            if opt1.characters.count > 0 {
                let b = opt1.characters.count
                if  b > 0 {
                    let index = opt1.startIndex.advancedBy(b - 1) //swift 2.0+
                    opt1.removeAtIndex(index)
                   
                }
            } else {
                 opt = -1
            }
        } else {
            clear()
        }
    }
   
    /*
    Show input datas
    */
    func showLabel() -> String {
        let flag = self.opt
        var result = ""
            switch flag {
            case -1 :
                result = "\(opt0)"
            case 80 :
                result =  "\(opt0)+\(opt1)"
            case 81 :
                result =  "\(opt0)-\(opt1)"
            case 82 :
                result =  "\(opt0)*\(opt1)"
            case 83 :
                result =  "\(opt0)/\(opt1)"
            default :
                result =  ""
            }
            return result
      
    }
}

 

 

  • 大小: 40.7 KB
  • 大小: 87.2 KB
分享到:
评论

相关推荐

    IOS-简易计算器-根据Stanford教授思想做的

    本项目"IOS-简易计算器-根据Stanford教授思想做的"正是这样一个实例,它遵循了斯坦福大学教授的教学理念,旨在提供一个实践平台,帮助学习者掌握iOS应用开发的关键技术。 首先,我们要了解的是iOS应用的基本结构。...

    ios-简易计算器.zip

    在iOS开发中,创建一个简易计算器应用是一项基础但具有挑战性的任务,特别是对于Objective-C(OC)初学者来说。这个“ios-简易计算器.zip”项目显然是一位OC新手的作品,他试图构建一个能处理基本数学运算并理解括号...

    ios-简单计算器.zip

    在iOS平台上开发一个简单的计算器应用,我们可以涉及到多个关键知识点,包括UI设计、事件处理、算术运算以及程序架构。下面将详细阐述这些方面。 首先,UI设计是用户与应用程序交互的界面,对于一个计算器应用来说...

    ios-计算器.zip

    这个压缩包可能包含了一个简单的计算器应用的实现,特别是针对0和小数点的特殊性进行了优化。 描述中提到,“相对于网络上的计算器分析,或者之前的计算器代码,添加了对0和.的特殊性处理”。这表明开发者可能解决...

    iOS 小项目--小费计算器

    在这个iOS小项目中,我们将会探讨如何开发一个简单但实用的小费计算器应用。这个应用的主要功能是帮助用户根据账单金额计算合适的消费,为日常生活中的餐厅用餐或其他服务提供便利。我们将使用Swift编程语言进行开发...

    IOS简易计算器源码(Object-C)

    "IOS简易计算器源码(Object-C)" 是一个基于苹果的iOS操作系统开发的简单计算器应用程序的源代码,使用Objective-C编程语言编写。Objective-C是Apple的开发语言,主要用于构建iOS和macOS应用。这个源码的目的是提供...

    ios_简易计算器

    在iOS开发领域,创建一个简易计算器应用是学习和掌握Xcode及SwiftUI基础知识的一个常见练习。这个名为"ios_简易计算器"的项目旨在通过实践帮助开发者熟悉Xcode的使用,理解UI界面构建,并实现基本的四则运算功能,...

    简单的 Objective-C 计算器类

    这个"简单的 Objective-C 计算器类"示例旨在教授初学者如何在 Objective-C 中创建一个基本的计算功能。通过理解这个类,我们可以学习到以下几个关键知识点: 1. 类与对象: 在 Objective-C 中,一切皆为对象。`...

    iOS简单计算器

    在这个项目中,“iOS简单计算器”采用了简单工厂设计模式,这种模式是软件工程中常用的一种创建型设计模式,旨在提供一个创建对象的接口,而隐藏了实际创建对象的复杂过程。 简单工厂模式的核心思想是定义一个工厂...

    (微信小程序毕业设计)iOS计算器(源码+截图).zip

    (微信小程序毕业设计)iOS计算器(源码+截图)(微信小程序毕业设计)iOS计算器(源码+截图)(微信小程序毕业设计)iOS计算器(源码+截图)(微信小程序毕业设计)iOS计算器(源码+截图)(微信小程序毕业设计)iOS计算器(源码+截图)...

    iOS做的计算器。

    在iOS平台上开发一个计算器应用是一项基础且实用的编程任务,非常适合初学者进行实践。这个名为"MyCalculator"的项目提供了一个良好的起点,让你了解iOS应用的基本架构、用户界面设计以及简单的计算逻辑。 首先,...

    用uniapp实现一个简单的计算器

    【uniapp实现简单计算器】 uniapp是一个基于Vue.js的多端开发框架,它允许开发者使用一套代码编写,然后可以发布到iOS、Android、Web(H5)、以及各种小程序(微信/支付宝/百度/QQ/快手/抖音/淘宝)、快应用等多个...

    iOS 科学计算器

    在iOS平台上,科学计算器是一款非常实用的工具,尤其对于学生、工程师或任何需要进行复杂计算的人群来说。这款iOS科学计算器具有丰富的功能,能够处理基本的算术运算,同时还包括了高级数学运算,如对数、指数、三角...

    ios带括号优先级计算器实现

    在iOS开发中,实现一个带有括号的优先级计算器是一项挑战性的任务,它涉及到解析表达式、处理运算符优先级以及正确计算结果等多个关键知识点。本文将深入探讨这些要点,并结合"iCalculator"这个示例项目,来详细介绍...

    IOS 简单的计算器Demo

    在iOS开发中,创建一个简单的计算器Demo可以帮助我们深入理解用户界面设计、事件处理以及基本的编程概念。这个Demo通常会包含数字按钮、运算符按钮、显示屏幕等元素,并且能够执行基本的加减乘除运算。下面我们将...

    ios开发的简单计算器

    ios 委托 简单计算器 - (IBAction)Result:(UIButton *)sender { NSString *string; int a = self.i; string = [[NSString alloc]initWithFormat:@"%d",a]; int length = [string length]; self.j = [[self....

    Calculate.zip_I89_calculate\_ios_ios calculate_ios简易计算器

    《iOS简易计算器应用详解》 在移动设备上,计算器应用是一种常见的工具,为用户提供便捷的数学计算服务。本文将深入探讨“calculate_ios”这款专为iOS设计的简易计算器应用,它具备基本运算功能并支持连续运算,...

    Lios-1.0.0.zip

    《简易安卓计算器——Lios-1.0.0.zip项目详解》 本文将详细解析名为“Lios-1.0.0.zip”的压缩包文件,它是一个基于Android Studio开发的简约风格安卓计算器应用,适用于初学者进行Android开发的学习与实践。通过对...

    ios-李泽雨.zip

    在iOS开发领域,一个“初步运算器”通常指的是一个简单的应用程序,它允许用户执行基本的数学运算,如加、减、乘、除。这个“ios-李泽雨.zip”文件可能包含了一个iOS开发者李泽雨编写的初始版本计算器应用的源代码。...

Global site tag (gtag.js) - Google Analytics