Swift之旅:1.概述-用Swift实现一个简单的计算器

学习所用到的资源:

斯坦福大学公开课:iOS 8开发

网易空开课地址链接:斯坦福大学公开课:IOS8开发

github上字幕链接:字幕

百度网盘资源下载链接:百度网盘

1.详解IOS编程的四个层

①cocoa touch层

这是我们最长用到的层,里面最长用到的当然是最基础的控件

②媒体层(Media)

③核心服务层

④核心操作系统层

2.新建一个Swift的IOS工程

①打开Xcode,按照图示新建一个工程

②选择Application 然后 单击Sigle View Application。

③按照如图所示,填写相应的栏目。

company
identifier的值 + product name的值 = bundle identifier in App ID

④设置项目工程的保存路径:

⑤这样新建一个项目就结束了,so easy :]

3.搭建界面

①单击 Main.storyboard进入故事版界面。我们可以看见故事版上有一个View Controller,那个就是进行界面设置的地方。

②将一个Label控件拖拽到Controller中

③调整Label的大小,内容和位置。调整位置和大小的时候,尽量依靠蓝色的虚线。

④选择模拟器为IPhone6,然后运行程序。

⑤可以发现模拟器中并未没有Label控件。

⑥通过Hardware中的Rotate
Left来旋转模拟器,发现Label出现。

4.autoLayout(自动布局)初探

①先进行Label右边框的约束

选择其中的Trailing
Space to Controller Margin,决定了Label的右侧和Controller右侧的距离

②进行Label顶部与 Controller顶部的约束

③Label的左侧与Controller左侧之间的约束

④根据以下操作,修改Controller中的警告。

⑤此时可以看到不管我们如何变换模拟器,0的位置总是不变

3.通过使用代码来实现相应的逻辑

①Xcode自动会生成一个ViewController类,它继承自UIViewController。里面重载了父类的两个方法,现在不需要,我们将它删除。

②按照如图所示,单击Show the Assistant editor显示代码和storyboard。

③拖拽label控件,到代码编辑框中,出现蓝色的横杠,然后松开鼠标。

④弹出如图所示的对话框,在Name中输入display,然后点击Connet表示连线成功。

⑤然后我们在往storyboard中添加UIbutton控件。

将UIbutton连线到代码区,松开鼠标。弹出如下所示的对话框。然后我们设置Connection为Action,表示这次是个方法。在Name中输入appendDigit。然后单击Connect

然后我们设置UIbutton的属性,以及位置

⑥然后我们通过复制和粘贴,迅速布局一个简单的计算器。(复制不仅仅会复制控件的样式,而且其相关联的属性和方法也会一样关联)

⑦相应的逻辑代码:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var display: UILabel!
    //var:定义一个变量 变量类型从右边推导而来
    var userIsInTheMiddleOfTypingANumber = false

    @IBAction func appendDigit(sender: AnyObject) {
        //let是用来定义一个常量,常量类型从右边推导而来
        //sender.currentTitle用来获得当前单击按钮的标题
        let digit = sender.currentTitle!!
        //println用来输出字符串,\()用来包含相应的变量
        println("digit = \(digit)")
        //用来判断是不是第一次输入数字
        if(userIsInTheMiddleOfTypingANumber) {
            //不是第一次输入数字,就将当前输入的数字拼接在Label的text
            display.text = display.text! + digit
        } else {
            //如果是第一次输入数字,就直接赋值给Label的text
            display.text = digit
            //如果首次输入的数字为不为0,修改为true
            if(digit != "0") {
                userIsInTheMiddleOfTypingANumber = true
            }
        }
    }
}

*let用来定义常量(const),常量定义之后就不可以改变。一定要初始化,不初始化会报错。

*var用来定义变量,一定要初始化,不初始化会报错。

*swift语言有类型推导,定义的变量或者常量的类型通过右边的值来决定。

*\()用来在字符串中包含 相应的变量或者常量

* optional Type:这种类型的值有两种状态,一种是无值(nil),一种是有值。

也就是,Optional类型允许变量没有值,其它类型如果没有初始化值在使用时会报错 。

optional 在有值得时候,值的类型是由 ?左边的值得类型来决定。可以通过!来解包取得相应的类型。

optional类型的值不可以用于右值!!!!

*按住option键点击相应的变量,来查看文档。

时间: 2024-08-05 01:11:19

Swift之旅:1.概述-用Swift实现一个简单的计算器的相关文章

我的Android进阶之旅------>Android关于Log的一个简单封装

android.util.Log类,能够方便地用于在编码调试过程中打印日志. 可是在公布后的产品中,假设有太多的日志打印.则会严重地影响性能. 对android.util.Log类做一个简单的封装.当产品要公布的话,将Debug设为false. 代码例如以下. public class LogUtil { /**正式上线時候设为false*/ private final static boolean debug = true; private final static String TAG =

我的Android进阶之旅------>Android关于Activity管理的一个简单封装

用一个集合类对所有的Activity进行管理,实现随时控制Activity.用add(Activity activity)方法向List中添加Activity,用remove(Activity activity)方法从List中移除Activity,用finishProgram()方法将List中所有Activity移除并退出程序 import java.util.ArrayList; import java.util.List; import android.app.Activity; imp

Swift 概述及Swift运算符和表达式

Swift  是用于设计 iOS 及 Mac OS X 应用的一门新 语言. Swift 特点 ?   Swift  保留了 C  与 Objective-C 的优点,并摒弃 其为了兼容 C  语言所受的限制. ?    Swift吸纳了安全编程模式,并新增了一些现代 化功能,使其更易使用.更为灵活.更具乐趣. ?     Swift 的 简 洁 风 格 与 广 受 欢 迎 的 成 熟 框 架Cocoa / Cocoa Touch 相结合,将为重新构思软件的开 发过程带来新机遇. ?   Swi

swift介绍和语言概述

Swift是什么? Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话:  Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility. Swift adopts safe programm

《Swift开发指南》国内第一本Swift图书上市了

既<苹果Swift编程语言开发指南>视频教程地址:智捷在线课堂,推出以来,受到大家高度关注,再接再厉推出: 国内第一本Swift开发图书:配有同步习题.同步视频教程,并全程展现即将上线的iPhone计算器项目: 分层架构设计解决Swift与Objective-C混合搭配问题:我们会及时更新本书版本欢迎大家关注. 新书预售地址: 京东预售:http://item.jd.com/11516346.html当当预售:http://product.dangdang.com/23535049.html互

Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课

本课程采用Q Q群直播方式进行直播,价值99元视频课程免费直播.完整的基于Swift项目实战,手把手教你做一个Swift版iPhone计算器.(直播过程也有惊喜!)直播Q Q群:362298485(直播时点击群视频即可进入直播课堂)直播时间:8月26日(周二),9月2日(周四),每天20:00-22:00欢迎咨询客服Q Q:1575716557直播后希望继续深入学习了解本课程可在51CTO学院购买本课程,定价99元.购买课程更有惊喜:买课程送书,送优惠券了! 购买本课程赠送关东升老师价值69元国

swift學習第四天 swift與OC的交互

互用性是让Swift和Objective-C相接合的一种特性,使你能够在一种语言编写的文件中访问和使用另一种语言编写的代码.当你准备开始把Swift融入到你的开发流程中时,你应该懂得如何利用互用性来 初始化(Initialization) 为了使用Swift实例化Objective-C的Class,你应该使用Swift语法调用它的一个初始化器.当Objective-C的init方法变化到Swift,它们用Swift初始化语法呈现."init"前缀被截断当作一个关键字,用来表明该方法是初

[爱上Swift]第三弹:使用Swift建立App基本基石

搭架子 首先这次我们会主要使用IOS自带的导航Controller为一个APP建立一个简单的基石, 新建一个空的Application并创建3个swift文件,分别命名为:FirstViewController,SecondViewController,ThirdViewController; 同时在三个Swift的Controller中重写继承类的viewDidLoad()方法: override func viewDidLoad(){ super.viewDidLoad(); } 在整个程序

窥探Swift系列博客说明及其Swift版本间更新

Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift书籍是1.0版本,所以上面一些东西并不在适用.虽然Swift语言仍在更新,但是其整体的基础框架已经形成,大的改动应该不会有,版本的更新更多的是语言新功能的添加和完善,所以并不用担心现在学的Swift会过时.更新也就是在原有的基础上去更新,所以学学Swift还是很有必要的.新的Swift版本中引入了好