码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-06-14 10:58:23      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:ios   swift   optional   autolayout   斯坦福大学公开课   

学习所用到的资源:

斯坦福大学公开课: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键点击相应的变量,来查看文档。



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

标签:ios   swift   optional   autolayout   斯坦福大学公开课   

原文地址:http://blog.csdn.net/supersonico/article/details/46488749

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!