2016年4月19日 星期二

Swift: Segment的操作練習

看圖理解,
Segment 就是圖中"first"跟"second"那個可以讓人點選的按鈕,
他們是歸在一組的,所以通常會是同類型的切換鈕。

這張圖的左半是畫面,右半是code,
其中三個綠框框內各代表了一個function,
他們前端都有一個灰色點,跟著箭頭指向左邊的元件,
這就是需要在Xcode中建立“圖形元件”與“function”連結的地方,
我們就可以很直觀知道哪段function會跟哪個按鈕有關聯。

實心的灰色點表示有連結到東西,空心的代表沒有連東西。
可以用按右鍵拖曳的方式,把按鈕拉到function的code上,
他就會有個框框提示跑出來,放開就可以建立連結了。
(例外註:當專案關掉再開,然後直接開.swift檔時,可能會看到空心,
這時打開StoryBoard它就會再連上,沒有的話就要再check了。)



以下是整段code:
(出自於Swift書:用Swift語言一次搞定所有蘋果裝置的程式開發 / 佳魁出版)

import UIKit
class ViewController: UIViewController {

    @IBOutlet weak var tv: UITextView!
    @IBOutlet weak var tf: UITextField!
    @IBOutlet weak var segmented: UISegmentedControl!

    override func viewDidLoad() {
        super.viewDidLoad()
        onChanged(segmented)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBAction func onAdd(sender: AnyObject){
        let count = segmented.numberOfSegments
        let title = tf.text
        if title!.characters.count > 0 {
            segmented.insertSegmentWithTitle(title, atIndex: count, animated: true)
        }
    } // 動態增加segment的函數
    
    @IBAction func onDelete(sender: AnyObject){
        let index = segmented.numberOfSegments - 1
        if index > 0 {
            segmented.removeSegmentAtIndex(index, animated: true)
        }
    } // 動態刪除segment的函數
    
    @IBAction func onChanged(sender: AnyObject){
        let index = segmented.selectedSegmentIndex
        let title = segmented.titleForSegmentAtIndex(index)!
        tv.text = "選取了第\(index + 1)個分段,標題是:\(title)"
    } // 顯示選取的segment

}

一面寫一面思考這些文章會對誰有幫助,坦白說這個blog很難讓初學者看了就能學會,
主要是我做學習筆記用,會把重要的部分整理成一篇文章以後複習,
Xcode的安裝、環境設定跟基本操作一般書中、網路上都有介紹,
而且一定需要自己花時間熟悉摸索,若你也是初學者,不妨看看我貼的內容,
也許多少能找到有益的資料。

一面跟著書做練習,一面撞牆,一面完成小功能,偶爾發現書中的錯誤 / bug,
或 Xcode / Swift 更新的東西,這就是學習的苦與樂吧。

繼續加油!



沒有留言:

張貼留言