欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift實現(xiàn)簡易計算器功能

 更新時間:2022年01月26日 08:39:17   作者:文恒  
這篇文章主要為大家詳細介紹了Swift實現(xiàn)簡易計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

用Swift寫一個簡單計算器的Demo,供大家參考,具體內(nèi)容如下

實驗環(huán)境:

Xcode v6.4   & OS X Yosemite 10.10

功能描述:

1、實現(xiàn)加減乘除+根號(結(jié)果display為Double型)
2、邊界適應:各元素之間的距離固定,且適應手機旋轉(zhuǎn)(Roate)
(學習過程,根據(jù)Stanford的Swift課程而寫的程序)

代碼實現(xiàn):
 

//
// ?ViewController.swift
// ?Calculator
//
// ?Created by VincentYau on 4/7/16.
// ?Copyright (c) 2016 VincentYau. All rights reserved.
//

import UIKit
class ViewController: UIViewController
{
? ? @IBOutlet weak var display: UILabel!

? ? var userIsInTheMiddleOfTypingANumber:Bool = false
? ? //用戶是否已經(jīng)輸入數(shù)字,由于Swift的變量必須負初始值,所以設為false

? ? @IBAction func appendDigit(sender: UIButton){
? ? ? ? let digit = sender.currentTitle!//直接獲取Button的數(shù)字

? ? ? ? //若已輸入過數(shù)字,則直接往display中添加數(shù)字,否則直接現(xiàn)實新點擊數(shù)字,去除原始0的操作
? ? ? ? if userIsInTheMiddleOfTypingANumber{
? ? ? ? ? ? display.text = display.text! + digit
? ? ? ? }else{
? ? ? ? ? ? display.text = digit
? ? ? ? ? ? userIsInTheMiddleOfTypingANumber = true
? ? ? ? }
? ? }

? ? //對數(shù)字進行運算
? ? @IBAction func operate(sender: UIButton) {
? ? ? ? let operation = sender.currentTitle!
? ? ? ? if userIsInTheMiddleOfTypingANumber{
? ? ? ? ? ? enter()
? ? ? ? }
? ? ? ? switch operation{
? ? ? ? /*swift算法極為簡潔,當調(diào)用方法performOperation時,其自動對比方法的參數(shù),而無需在
? ? ? ? ?*調(diào)用方法時寫明參數(shù)類型,例如,這里的參數(shù)$0 與 $1并沒有指明類型,而Swift會直接將其適應為
? ? ? ? ?*方法performOpetation中的Double型
? ? ? ? */
? ? ? ? case "×": performOperation { $0 * $1 }
? ? ? ? case "÷": performOperation { $1 / $0 }
? ? ? ? case "+": performOperation { $0 + $1 }
? ? ? ? case "?": performOperation { $1 - $0 }
? ? ? ? case "√": performOperation { sqrt($0) }
? ? ? ? default: break

? ? ? ? }
? ? }

? ? //兩個參數(shù)進行運算的方法
? ? func performOperation(operation: (Double,Double) -> Double){
? ? ? ? if operandStack.count >= 2 {
? ? ? ? ? ? displayValue = operation(operandStack.removeLast(),operandStack.removeLast())
? ? ? ? ? ? enter()
? ? ? ? }

? ? }

? ? //一個參數(shù)進行運算的方法,Swift支持方法的重載,但Obj-C不允許,這里繼承了Obj-C的
? ? //類UIViewColler,不能重載方法performOperation,故將其變?yōu)镻rivate方法
? ? private func performOperation(operation: Double -> Double){
? ? ? ? if operandStack.count >= 1 {
? ? ? ? ? ? displayValue = operation(operandStack.removeLast())
? ? ? ? ? ? enter()
? ? ? ? }

? ? }
? ? var operandStack = Array<Double>() ?

? ? //若用戶點擊enter,則將相應數(shù)字添加至數(shù)組Array中 ?
? ? @IBAction func enter() {
? ? ? ? userIsInTheMiddleOfTypingANumber = false
? ? ? ? operandStack.append(displayValue)
? ? ? ? println("operandStack = \(operandStack)")
? ? }
? ? var displayValue: Double {
? ? ? ? get{
? ? ? ? ? ? return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
? ? ? ? }
? ? ? ? set{
? ? ? ? ? ? display.text = "\(newValue)"
? ? ? ? ? ? userIsInTheMiddleOfTypingANumber = false
? ? ? ? }
? ? }
}

注意:

這里容易忽略的是,各元素之間的距離還有元素與邊界的距離,設置好后如下:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Swift利用AFN實現(xiàn)封裝網(wǎng)絡請求詳解

    Swift利用AFN實現(xiàn)封裝網(wǎng)絡請求詳解

    網(wǎng)絡請求工具是我們經(jīng)常用到的工具類,所以下面這篇文章主要給大家介紹了關于Swift利用AFN如何實現(xiàn)封裝網(wǎng)絡請求的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-10-10
  • Swift4.1轉(zhuǎn)場動畫實現(xiàn)側(cè)滑抽屜效果

    Swift4.1轉(zhuǎn)場動畫實現(xiàn)側(cè)滑抽屜效果

    這篇文章主要為大家詳細介紹了Swift4.1轉(zhuǎn)場動畫實現(xiàn)側(cè)滑抽屜效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 詳解Swift編程中下標的用法

    詳解Swift編程中下標的用法

    這篇文章主要介紹了Swift編程中下標的用法,是Swift入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • Swift類型創(chuàng)建之自定義一個類型詳解

    Swift類型創(chuàng)建之自定義一個類型詳解

    這篇文章主要介紹了Swift類型創(chuàng)建之自定義一個類型詳解,本文講解了自定義原型、實現(xiàn)默認值、支持基本布爾型初始化、支持Bool類型判斷、支持兼容各們各派的類型、完善OCBool的布爾基因體系等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • 使用?Swift?Package?插件生成代碼的示例詳解

    使用?Swift?Package?插件生成代碼的示例詳解

    這篇文章主要介紹了使用?Swift?Package?插件生成代碼,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • swift實現(xiàn)簡單的計算器

    swift實現(xiàn)簡單的計算器

    這篇文章主要為大家詳細介紹了swift實現(xiàn)簡單的計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 分享十條實用的Swift小提示

    分享十條實用的Swift小提示

    是時候使用易入手又全面的Swif語言為iOS和mac OS X做應用開發(fā)了,下面這篇文章主要給大家分享介紹了十條實用的Swift小提示的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-06-06
  • Swift實現(xiàn)表格視圖單元格單選(1)

    Swift實現(xiàn)表格視圖單元格單選(1)

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)表格視圖單元格單選,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift UILable 設置內(nèi)邊距實例代碼

    Swift UILable 設置內(nèi)邊距實例代碼

    本文主要介紹Swift UILable 設置內(nèi)邊距,這里提供示例代碼供大家參考,有需要的小伙伴可以看下
    2016-07-07
  • swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法

    swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法

    本篇文章主要介紹了swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論