Swift 基础教程

October 18, 2014

资料

说明

说一说用swift开发一个iphone程序,需要学的东西.

我以前没用objective-c做过ios开发,所以关注的点不是老的ios程序员关注的,新入手想直接学swift开发的可以一起学习.

基本就是 http://www.raywenderlich.com/74904/swift-tutorial-part-2-simple-ios-app 的半翻译和读书笔记

用惯了vim,再来用xcode这种ide,好像在玩迷宫探索一样,痛苦不堪.

Playgrounds

这是只是用来测试和学习 swift 语法的一个工具,模拟出解释语言的感觉.其实没什么鸟用.

就是用来学习语法的一个便捷的东西而已.

建立项目

启动 Xcode 打开 Create a new Xcode project. 选中 iOS\Application\Single View Application, 选择 next.

填入 TipCalculator 作为 Product Name, 选择 Language 为 Swift, Devices 为 iPhone. Use Core Data 选项不能选中,点击 Next.

选择一个目录来存放项目, 点击 Create.

建立 Model

选择 File\New\File 然后选 iOS\Source\Swift File. 文件名改为 TipCalculatorModel.swift, 点击 Create

如果建立的文件 TipCalculatorModel.swift 在左边资源树文件夹 TipCalculator 以外,那么把他拖进来.

打开文件, 把以下内容加到里面

import Foundation

class TipCalculatorModel {

  var total: Double
  var taxPct: Double
  var subtotal: Double {
    get {
      return total / (taxPct + 1)
    }
  }

  init(total:Double, taxPct:Double) {
    self.total = total
    self.taxPct = taxPct
  }

  func calcTipWithTipPct(tipPct:Double) -> Double {
    return subtotal * tipPct
  }

  func returnPossibleTips() -> [Int: Double] {

    let possibleTipsInferred = [0.15, 0.18, 0.20]
    let possibleTipsExplicit:![pic](Double) = [0.15, 0.18, 0.20]

    var retval = [Int: Double]()
    for possibleTip in possibleTipsInferred {
      let intPct = Int(possibleTip*100)
      retval![pic](intPct) = calcTipWithTipPct(possibleTip)
    }
    return retval

  }
}

介绍 Storyboards 和 Interface Builder

xcode 用一种叫做 Storyboards(故事板)的东西来绘制用户界面.

打开资源树下得 Main.storyboard 就可以看到 storyboards 的界面了. * 最左边是资源树,里面是项目的文件,刚才已经用了好多次了. * 左边第二个就是 Storyboards 的 Document Outline,可以理解为界面的资源树,列出了所有用到的界面组件. * 下面可以看到有个 wAny hAny 这样的东西, 是用来切换尺寸设置的 * 界面的上部,有三个按钮.是用来快速进入: View Controller 和 First Responder 还有 Exit 的 * 右上有四个图标用来 Auto Layout 的(没打开 Show Utilities 时) * 选择 View\Utilities\Show Utilities 来显示 Inspectors ,这个很常用,用来设置控件参数.这个是一个 tab 组,可以切换,而且频繁的需要切换. * 这时的右下也出现了组件列表

建立视图

我们需要一个 Navigation bar

选择 Editor\Embed In\Navigation Controller, 可以看到资源菜单根节点多出了一个 Navigation Controller Scene

点击回到 View Controller,可以看到顶部多出了 Navigation bar,灰色的一条,不咋个明显.双击,发现可以输入文字,输入:Tip Calculator

Label

从组件库里面拖一个 Label 组件出来,最下面有过滤搜索框,输入 Lable, 拖出来到 View 上,随意放置.

双击这个 Lable, 填入文字:Bill Total (Post-Tax):

选中这个 Lable, Inspectors 切换到 Size Inspectors,这里可以设置组件的位置和大小.

按以下参数来设置: * X=33 * Y=81

重复这个操作: * 文字:Tax Percentage (0%): * X=20 * Y=120

Text Field

同样拖出来,按这个参数设置 * X=192 * Y=72 * Width=268 切换到 Attributes Inspector, 设置 Keyboard Type=Decimal Pad

Slider

Attribute Inspector 里,按这个来设置 * Minimum Value=0 * Maximum Value=10 * Current Value=6 Size Inspector * X=190 * Y=111 * Width=272

后续也没什么了,就是拖各种组件进来,设置……

Auto Layout

找不到按钮,我靠

终于找到了,作者犯二,写成 left 了,但是其实是在右边.我靠.

添加后没有任何作用, simulator 里面还是会突出去.

找到这个资料 http://www.cocoachina.com/industry/20131203/7462.html 坑还是很深的感觉,单独挖坑xcode 的自动布局

storyboard 还是不适合我,先放放吧.

我估计还是喜欢用代码来布局的方式.用 IDE 对我来说好难.

直接找不到用代码画界面的资料, 只有一点一点的探索 xcode 了.


comments powered by Disqus